cqbz 周考6总结
第一题very EZ ,看到mod,又只是求数量,所以直接分段探讨(毕竟可以枚举b)就彳亍了
还是感谢样例让我看到了特殊情况
第二题 是我很难受的,我写了一个plus版本的,交的时候交的是原版本的,痛失50pts
为什么是50pts,因为我找人的时候是O(n)的,当时忘记lower_bound的用法了,所以肯定超时
下次注意
第三题 就是看你发现这个运算的实质是什么:消除k个数的二进制下,同时为1的数位
那是不是对于某一位i是1的而言,我k个为1组,必须要凑集整数组才对?
我直接用”桶“装t[i]装i位为1的数字个数
然后位数两两之间又是互相约束的,所以应该是gcd,而这个gcd的所有因数不就满足上面这个条件了了?
那这个因数的集合不就是k的集合吗
就是注意一点,为0的时候,没有约束,对于t[i]=0要continue,gcd=0则是1-n都满足
感谢样例让我看到了特殊情况
第四题 dj有点忘记了,记得复习
其实考试时有思路的,但也没考虑到边上相遇的情况(再次感谢样例2)
第五题,差分约束,看总结:
还有就是注意,用了scanf,删掉ios,他还不会报错(我就说怎么一点分都没骗到)
总结: 如果要求最大值,则想办法把每个不等式变为标准xi-xj<=val(约束)的形式,然后建立一条从 j到i权值为val 的边,最后求最短路径即可。
如果要求最小值,则想办法把每个不等式变为标准 xi-xj>=val的形式,然后建立一条从j到i权值为val的边,最后求最长路径即可。
为了好记:求最值反着约束,反着连边,反着求路径
例如:求最小,约束>=,连边j,i,找最长路
还有就是spfa的复习(好,行,我只记得floyd了)
第六题:
烦呐,点双便双忘记怎么打了
悲鸣!
今晚就复习(我在22:30分写的这句话,但...)