今天状态较昨天好了不少。(因为题简单了)但还是差不多垫底选手。
7.7的比赛要注意:
1. 至少打完三题暴力再死磕一题! (没有题让我死磕)
2. 思考时间控制在1h, (超过20分钟左右,花在第三题上)
3. 先打暴力再打正解, (达成)
4. 记得多根据数据范围与问题想一下学过的算法。 (达成)
这次先把三题都看懂了再想题。
第一题一开始是没有头绪的,先看了
后面发现枚举倍数有被卡掉的可能。但看过的这么快还是没有打枚举约数。
第二题第一想法是缩环,但是要考虑环上跑的情况。好像挺麻烦的。 先看了第三题数学题。
第三题一开始在往化式子方向想了,发现无功而返。再观察一下,题目给了我们kp而不是直接给n,所以我将他分成k段打了个表,就发现了规律。结果因为ll*ll爆掉了GG。
所以我们需要LL*LL黑科技 快速加,一次的复杂度是Lg也就是60。
将a*b分解为
ll mult( ll A, ll B, ll Mo ) {
ll ret=0;
while (B) {
if ((B&1)>0) ret=(ret+A)%Mo;
A=(A+A)%Mo; B=B>>1;//不能直接用2^i * a 一样会爆
}
return ret;
}
第二题最后有方便的倍增,因为路是唯一的。 也有几位3000byte缩环+线段树过的大爷
7.8的比赛要注意:
0. 摆好蒟蒻心态
1. 至少打完三题暴力再死磕一题!
2. 首次思考时间控制在1h, 每一题都要保证至少思考20分钟,不要把容易拿的分丢掉了。这时候暴力应该已经想好了,打完所有有分的题之后再来继续想。
3. 记得多根据数据范围与问题想一下学过的算法。