2017 cdqz高新集训

Day1

T1:考试的时候发现明显不可做,于是打了一个暴力交表。正解是只考虑余数的末九位,然后多出的几位用 dp 直接乘上组合数,这样子, dp 可以 O(nm) 的,然后注意到这个是可以快速幂转移的,所以再加上一个快速幂就可以了。
T2:这道题只是一个求值题,所以很容易想到 bsgs 算法,这样子只用将原式化简一下子就可以做出来了,所以最后可以化简成一个形如 ax=b(modp) 的式子,就可以搞了。
T3:LCT模板题,将子树 access 一下再打一下标记就可以了。

Day2

T1:这个简直神了,直接长度排序之后暴力搞就可以,然后扫到长度小于答案的就直接 break 就可以了。
T2:线性基裸题,最后只用将 a 的式子最大化就可以了,然后输出答案的话用一个 bitset 维护一下每一个线性基选择那些数。
T3: lct 统计每条边的贡献。

Day3

T1:傻逼题,枚举约数就可以了。
T2:行列式题,详情见我的另外一篇博客
T3:回文自动机加 lct ,天知道这道题要怎么做。

Day4

T1:后面的部分明显是一个 lis ,这个可以再 nlogn 的时间做出来。关键是前面部分怎么做。我们注意到前面部分要用一个 nlogn 的结构来维护,我们考虑用 splay 。这样子,我们每加入一个数,就把它的前驱打上加一标记。
T2:明显是一个类似于组合数的转移,然后我们只需要看每个1有多少贡献就可以了,这样子就是一个组合数求和。
T3:我好不容易有 70 分,但是不知道为什么,那个 stl 中的 map 出锅了,导致我记忆化搜索的值全错了。题解也很明显,首先还是一个基础的 polya 定理,然后用一个矩阵来算置换的长度,最后这个矩阵可以直接推通项,然后就可以做了。但是 n 的范围较大,要用 rho 才行。

Day5

T1:有指数出现,所以考虑错位相减,然后一减就出来了。
T2:相当于一个 dp ,可以记忆化搜索,然后,就是傻逼题。
T3:可以写一个单调栈加主席树,主席树的意义很明显,单调栈的意义是维护一个最大值于一个最小值,然后随着一个 r 的右移,维护一个单调栈。

Day6

T1:区间众数,这是我这么多天唯一过的题。
T2:石子合并,用四边形不等式优化可以得 60 。正解要写 G 开头的算法。
T3:网络流建边的时候反向边建成 inf ,这样子的话,就可以反正多割一条边。

Day8

T1:杜教筛。首先将平方化成倍角,这样子就会有一个 φ 的式子。然后如果不考虑互质这个条件,那么一个的和式就是单位圆上的非一单位根,和为 1 ,这样子再减去多余的部分,就可以像杜教筛一样做了。
T2:动态点分治,将二进制的每一位建一棵树就可以呢。
T3:一个混合的网络流,前一部分按位拆开可以做网络流,后一部分直接二分图。

Day9

T1:就是一个暴力就解决问题,然后竟然还可以证明暴力复杂度就是对的。
T2:裸的树上背包,然后每次只枚举子树大小就可以做到 n2
T3:两个网络流,那么先跑一次全满流,然后再跑一次半流算出一个方面的范围,然后那个式子可以求导求出来极值在哪取到,就可以做了。

Day10

T1:一个三维的偏序,那么我们可以写树套树套树,也可以写 cdq cdq cdq ,也可以写树套树套 cdq 。当然不用那么麻烦,正解是 cdq 套主席树套单调栈。
T2:好题,具体在我的另外一篇博客。
T3:这道题是一个无比复杂的转移,你们可以感受一下:

Day11

T1:好像是一个最小基环树森林,但是不知道怎么证明。实际上,我们发现这个基环树也是满足一个拟阵的性质的,所以我们可以直接贪心的选取。
T2:这道题特别迷,只要每次选极角最小的或者最大的就可以。
T3:通讯题,很毒瘤。

Day12

T1:个指数求和。也可以错位相消,这样子有 80 。然后再加上一个优化就可以呢。具体加什么优化?那当然是矩阵。
T2:傻逼题。
T3:动态点分治,然而建图却无比复杂,因为涉及到了计算几何。

考试总结

这几天天天想做出一道题,结果浪费了大把的时间却还是没有做出一道题,这就表现出了我还是要提升自己的知识水平,而且有很多东西还不懂。并且思路题也有许多想不出来,还是太笨了。

涉及DP/DP优化:1-1,4-2,4-3,5-2,6-2,9-1,9-2,10-2,12-2
涉及数论/反演:1-2,3-1,4-2,4-3,5-1,8-1,12-1
涉及动态数据结构:1-3,2-3,4-1,6-2,8-2,11-1,12-3
涉及位运算相关:2-2,8-2,8-3
涉及暴力/优化暴力:2-1,6-1,9-2
涉及网络流建模:6-3,8-3,9-3
涉及点分/动态点分:8-2,12-3

你可能感兴趣的:(考试题解)