- 博客(232)
- 收藏
- 关注
原创 F. Rare Coins
之间背包的价值总和比剩下的其他背包价值总和高的概率。算出来的,那么只需要计算不等式左边部分,即。,那么不在该区间内的金币数量就是。该式子可以通过计算后缀和快速得出。发现左边可以进行合并,因为。个银币,每个金币的价值为。,然后对于每次询问,在。
2024-04-11 21:20:37 591
原创 H. GCD is Greater
然后考虑除了上述情况的其他情况,根据贪心想法,肯定是gcd越大越好,那么我们可以存下每个数以及其约数出现次数的和,然后从大到小枚举gcd的大小,暴力判断即可,只需要判断能取到的最大gcd即可,其他的必然不会比最大的更优。首先贪心地想到,若想gcd大,选择的数的数量越小越好,即只选择两个数,因为再选择别的数gcd不会再增加,而不会让结果更优。个数并计算所选择数的gcd,后手选择剩下的数,并计算剩下所有的数按位与的结果,再加上给定的。,如果先手的结果大于后手,则先手赢,否则后手赢。对于上述三种情况,当该位为。
2024-04-11 20:59:02 890
原创 F1. Counting Is Fun (Easy Version)
的数组b成为是good的,当且仅当通过执行下面这个操作若干次可以让数组b中所有元素变成。,要让所有元素都为0,差分数组所有元素也得是0,所以充要条件就是,的,即一次操作最少有两个元素进行减1,所以差分数组就需要选择一对。那么就可以用设计dp状态统计方案数了,根据数据范围,最大可以到。给定n,k,p,n为数组长度,k为数组中每个元素的取值范围为。级别,再考虑优化转移,发现可以考虑后缀和使得转移可以。个数组里有多少个数组是good的。进行,因为转移的时候考虑的都是。时符合条件的方案数,转移就是。
2024-03-28 15:23:32 962
原创 2023年ICPC济南站G题
这个样例就是无解的,因此需要做的就是使用扩展域并查集,i表示翻转第i行,i+n表示不翻转第i行,因此,当两个1位于同一列的时候,合并(x, y+n)和(x+n, y),当两个1位于不同列的时候,合并(x, y)和(x+n, y+n),注意要判断i和i+n是否在一个连通块内,答案就是。},使得最终得到的01矩阵的每一列的1的个数不多于1个,问有多少种翻转方案,对结果模1e9+7。容易知道的是,设第i列和第c-i+1列总的1的个数为x,当x$\geq。当x=2时有两种情况,假设两个1分别位于第x和y行。
2024-03-13 18:10:31 1148
原创 pb_ds简单运用
在算法竞赛中,我们只需要知道pb_ds都有什么操作,每种操作是干什么的即可,不需要了解的太深入。pb_ds可以直接当作set进行操作,其中insert和erase没有区别。该题可以直接用pb_ds近乎暴力秒杀,以及运用到启发式合并的思想。其中最关键的是它的swap()的时间复杂度是常数。
2023-11-07 15:58:16 174
原创 Happy Equation(数论+讨论)
通过打表发现,当a为奇数的时候,结果全为1,那么只需要考虑当a为偶数时的情况。,所以x一定不是奇数,x一定是偶数。 因为a为偶数,那么a一定可以表示为。的倍数有多少个即可,即算一个前缀和。一共有多少符合的即可,又因为。内,问有多少个x满足。
2023-05-30 21:18:27 571
原创 P3478 [POI2008] STA-Station(换根DP 二次扫描)
P3478 [POI2008] STA-Station(换根DP 二次扫描)
2023-03-16 07:53:03 84
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人