随笔分类 -  模拟赛

摘要:不知道是不是我打的最后一场模拟赛了,记录一下吧,总体来说还不错,虽然 \(T1\) 方案数求错爆零了,但 \(T3\) 场切了,暴力打满的话有265,希望 \(NOIP\) 时也可以不让自己遗憾吧。 ——我们终会在星辰里相遇 A 【模板】分治FFT 考虑每加进来一个数的贡献 \(x_1*x_2+(x 阅读全文
posted @ 2024-11-28 20:03 _君の名は 阅读(37) 评论(2) 推荐(9) 编辑
摘要:已经好久没写模拟赛题解了啊。。。 A. 邻间的骰子之舞 一个结论,可以打表,每一次复制后跟的粘贴数量要尽量相同,差不超过1,所以枚举复制了几次,然后二分最大的出来答案小于 \(n\) 的数 \(mid\),然后枚举多少个复制后的粘贴数为 \(mid+1\),出来的答案可以 \(O(1)\) 算,大于 阅读全文
posted @ 2024-11-14 21:40 _君の名は 阅读(49) 评论(1) 推荐(2) 编辑
摘要:A. 小 Z 的手套(gloves) 明现的二分,我们先排序,假定 \(a\) 数组个数少,我们就对每一个 \(a_i\) 找一个 \(b_i\) 使其差不超过二分的值,然后 贪心来讲,肯定找相差最大的那组但差不超过二分值的那个数最优,且先找比他小的那组(因为排过序了),然后套个 \(multise 阅读全文
posted @ 2024-10-13 09:17 _君の名は 阅读(18) 评论(2) 推荐(1) 编辑
摘要:A. 好数(number) 很容易想到 \(n^3\) 枚举两个,看第三个是否出现,扩展一下,枚举一个,看剩下需要的和是否出现过,提前处理出两两的和 和最早能合出这个数的位置,复杂的 \(O(n^2)\) 点击查看代码 #include<bits/stdc++.h> const int maxn=5 阅读全文
posted @ 2024-10-11 21:14 _君の名は 阅读(16) 评论(0) 推荐(3) 编辑
摘要:A. 02表示法 对要求的数二进制拆分,每一位递归求解,大于2就继续拆,是1返回 \(2(0)\) ,是2返回 \(2\),由于外层的数比较大,所以 要写一个高精除低精 点击查看代码 #include<bits/stdc++.h> #define int long long const int ma 阅读全文
posted @ 2024-10-10 08:23 _君の名は 阅读(9) 评论(0) 推荐(2) 编辑
摘要:A. 欧几里得的噩梦 线性基,不会,咕咕咕 B. 清扫 赛时想到要分为两种操作了,也想到要把剩余未分配石头上传处理了,但是没想清楚操作之间的关系,冲着一堆样例的结论 就开始写分讨了,思路不是很清晰,然后因为绑包。。。似的很惨 对于一个节点,我们把它直接儿子当作叶子即可,上面的信息是其子树分配后需要处 阅读全文
posted @ 2024-10-09 06:43 _君の名は 阅读(19) 评论(0) 推荐(1) 编辑
摘要:A. 五彩斑斓 没办法,不会统计四个点相同的,赛时没想到,写了一个神秘算法骗了80 考虑倒着计算,总子矩阵有 \(\frac{n(n+1)*m(m+1)}{4}\) 个,减去四个角相同的矩阵数量就是答案,枚举矩阵的上下边界两条线 再枚举每一列,会有两个交点,统计每种颜色的上下交点颜色一样的个数,就可 阅读全文
posted @ 2024-10-07 21:26 _君の名は 阅读(28) 评论(1) 推荐(1) 编辑
摘要:A. 挤压 拆位算贡献,一个数二进制表示平方为 \(\sum_{i,j}s_i*s_j*2^{i+j}\) ,单独算每一项的贡献,枚举 \(i,j\),只有当这两位都为1时 结果才是1,所以我们要找异或后这两位都是1的方案数,这里需要 \(dp\) 用 \(f_{i,j,k}\) 表示前 \(i\) 阅读全文
posted @ 2024-10-05 19:58 _君の名は 阅读(28) 评论(1) 推荐(2) 编辑
摘要:这次状态不是很好,冲着T1磕了4个小时,后仨题看都没看。。。 A. median 去他丫的容斥,考虑排序,一个数作为中位数的方案数就是他左边有俩不同类型的数和右面有俩不同类型的数的总和 枚举哪些类型左边哪些右边,对每一位计算贡献就可以了,要提前预处理出来个数。 (有没有好心人看看我代码哪多乘了个4, 阅读全文
posted @ 2024-09-30 21:42 _君の名は 阅读(28) 评论(1) 推荐(1) 编辑
摘要:A. 一般图最小匹配 \(m\) 小于 \(\frac{n}{2}\) 所以对原数组排序后做差分,差分后的数不能选相邻的,设 \(f_{i,j,0/1}\) 表示前 \(i\) 个,选了 \(j\) 个,第 \(i\) 个选没选 直接 \(dp\) 求最小值就行 点击查看代码 #include<bi 阅读全文
posted @ 2024-09-29 11:23 _君の名は 阅读(14) 评论(0) 推荐(2) 编辑
摘要:A. 光 来自 \(K8\) 的神奇做法,根据贪心思想,一个点减四个亮度可以收益最大化,所以枚举四个灯亮度都不足4时的最终态,然后 看剩下需要亮度需要减的次数,每次选最大的那个操作就行,复杂度 \(O(16n)\) 点击查看代码 #include<bits/stdc++.h> const int m 阅读全文
posted @ 2024-09-29 10:39 _君の名は 阅读(19) 评论(0) 推荐(2) 编辑
摘要:A. 几何 设 \(f_{i,j,k}\) 表示前 \(i\) 个字符,分为两部分,分别为 \(x\) 的几倍加 \(x\) 的前 \(j\) 位,\(y\) 的几倍加 \(y\) 的前 \(k\) 位,是否合法 分别判断下一位 \(i+1\) 能否与 \(x\) 的下一位 \(j+1\) 和 \( 阅读全文
posted @ 2024-09-26 17:00 _君の名は 阅读(27) 评论(0) 推荐(2) 编辑
摘要:欢迎收看 \(T3\) 爆标解法! 额,在此感谢一下 Jijidawang 的帮助,式子从 \(n^2\) 到 \(nk\) 基本都是他做的,(没办法,我太菜了。。。) 节点 \(x\) 在其子树大小为 \(i\) 时的方案数为 \((n-x)!(x-1)!\dbinom{n-i-1}{x-2}\) 阅读全文
posted @ 2024-09-25 21:26 _君の名は 阅读(77) 评论(7) 推荐(7) 编辑
摘要:A. 商品 可以发现,选取的 \(l,r\) 一定有一个边界是原序列的数,所以我们 \(O(n)\) 枚举 \(l/r\) ,考虑如何快速的求出临项差的 绝对值,我们可以把相邻两个数大的放到一个数组,小的放到一个数组,先排序,每次枚举的 \(l,r\) 二分查找在数组中的 位置,贡献就是 \(l\) 阅读全文
posted @ 2024-09-24 21:42 _君の名は 阅读(27) 评论(0) 推荐(3) 编辑
摘要:A. 奇观 观察到 \(c\) 和 \(f\) 互不影响,所以分开算就行,枚举相连的边太多了,会 \(T\),所以我们把总情况找出来,减去删去的边的 方案数即可,记 \(f_{u,x}\) 表示 \(u\) 节点往后跟 \(x\) 个长度的方案数,有 \(f_{u,x}=\sum_{x->y} \l 阅读全文
posted @ 2024-09-24 07:04 _君の名は 阅读(19) 评论(0) 推荐(1) 编辑
摘要:A. 不相邻集合 可以发现,一个数只有在第一次出现才会做贡献,对于一个连续数段 \(1,2,3...n\) ,它最多提供 \(\lceil \frac{n}{2} \rceil\)的贡献,所以只需要维护 极长连续段即可 点击查看代码 #include<bits/stdc++.h> const int 阅读全文
posted @ 2024-09-08 18:05 _君の名は 阅读(35) 评论(0) 推荐(1) 编辑
摘要:A. 喜剧的迷人之处在于 切入点在 \(a\),考虑 \(a\) 是不是完全平方数,是的话直接找最小能匹配的完全平方数即可,不是的话 \(a\) 一定可以表示成 \(kx^2\) 的形式,倒着找到最大的平方因子除去,只需要在 \(L\)~\(R\) 间找到一个最小的数也等于 \(kx^2\) 即可 阅读全文
posted @ 2024-09-08 17:05 _君の名は 阅读(21) 评论(0) 推荐(1) 编辑
摘要:1.法阵 转化题意,就是每一行有一段连续的东西,每一列有一段连续的空格,求方案数。手模一下,整个图大概是长这个样子 由于它是一个向内凹进去的形状,所以它一定有一个转折点,我们可以去枚举这个转折点的位置求方案数,例如 \(A\) 点 其左边区域的方案数我们以水平线分上下两部分求,因为是方格,所以我们可 阅读全文
posted @ 2024-08-18 21:33 _君の名は 阅读(11) 评论(0) 推荐(0) 编辑
摘要:A. 符号化方法初探 看最大数和最小数的绝对值大小,用至多 \(n-1\) 次让其符号相同,是正数就加前一个数,是负数就倒着加后一个数,最多 \(n-2\) 次。 点击查看代码 #include<bits/stdc++.h> const int maxn=2e5+10; using namespac 阅读全文
posted @ 2024-08-13 18:03 _君の名は 阅读(10) 评论(0) 推荐(0) 编辑
摘要:A. 数字三角形 没看到排列,对着自己造的错样例改半天。填数,由上往下都向左下填,可以保证有解 点击查看代码 #include<bits/stdc++.h> const int maxn=550; using namespace std; int a[maxn][maxn],n,flag,cnt,m 阅读全文
posted @ 2024-08-13 15:47 _君の名は 阅读(18) 评论(0) 推荐(0) 编辑