tmp
T1 希望
知识点:贪心
分类:签到
本身是一道OI赛制题目,后改为ACM赛制,但依然可以从 得到提示引向正解:
在 时显然 必然需要被消灭,那么同时对显然比对 造成伤害更优,由此我们可以得到一个从左往右依次计算的算法:假设到 已经清零, 对于 ,那么同时对造成伤害直到被消灭。
对于,我们考虑从前往后和从后往前分别计算,分别表示前/后所有都被消灭时的斩击数,这时我们可以枚举使用魔法的位置,并通过预处理的可以O(1)计算代价。
总时间复杂度O(n)
T2 摆纸片
知识点:exgcd,快速乘,简单数学知识(数学归纳法)如果你要证明的话>_<虽然我觉得多数人都是直接写
分类:签到
下证挖掉任意一个格子后可以摆满其余格子:
显然对于时无论挖掉哪个格子均能摆满其余格子
设时满足
对于 (图丑勿喷)
不妨设挖掉的格子为左上那个格子,不妨我们在中间摆上一个如图的纸片
由时成立,我们已将的情况转化为个的情况加上一个纸片,即时可以摆满
得证
所以,
(1)由于<64位整数,所以可能会出现两个64位整数相乘爆longlong的情况,为此我们在第10个测试点出现了这种情况.
(2)由于没有保证为质数,但保证了非的倍数,即,所以我们可以通过exgcd求得在模意义下的逆元
T3 绝望
考点:线段树,基本数论
分类:中档
本题的第个操作显然不是拿来维护的,根据我们的询问内容查找质数个数可知,我们需要分类讨论如下几种情况:
为了方便讲解,我将其从上到下称为1~6
1:无论值与操作次数多少,均不会发生变化,需单独讨论
2:为1:可能会出现且所在位置为质数时由非质数变为质数
3:非1:只需在赋初值时判断一下是否为质数即可
4:为,什么都没有发生qwq
5:为1,见情况2
6::区间内质数个数归零,因为至少乘上了,显然不再为质数
只需将上述情况写清楚即可获得