20171014
总结一下今天的考试
T1的60分算法其实就是枚举然后找寻环节,然后我傻傻的以为第一对数一定在循环里面,其实并不这样,加入第一对是奇数,那么之后的所有数对就都是偶数,第一对不再循环里面; 可以用map搞一搞;
正解是A拿的时候即使2*n,B拿的时候是n-(tot-n)==2*n-tot,可以发现其实就是n在模tot意义下,乘2^T,然后快速幂跑一下就好了
T2,居然没特殊考虑K==0的情况挂了,我求那个什么坏对是$n*\sqrt{n}$的,然后计数的时候我用了一个n*log^2的线段树加二分,后来想了想,线段树区间覆盖其实本质上就是找了一个可行的左端点,这个完全可以用一个指针O(n)实现;
T3,在转移的时候,用到了一个十分关键的g数组,他的推导和昨天新看得错位排序的推导很想,在转移到j的时候,都是考虑它的两部分转移来源,然后根据最新的一位乘个什么东西就好,
这个g数组不像是f数组那么具体,而是类似于C(,)的一种公式,用于直接算出某些情况的方案数
然后求组合数质因数分解又学到了一个新方法,就是记录每一个数的最小质因子,然后递归的筛出来