谨此记录zkdxl的傻逼
连续三场 div2 B 平均要想半小时,C 往后没一道会的哈哈哈哈
VP 计划:在没有特殊情况时,每天至少两场 div2。
4-22:
第一场状态不错(而且题目好像偏简单
CF Round 708(contest 1497)
题解速报:
A:先填 0 1 2 3 4...,剩下随便填,答案显然是 1+2+3+4+5+5+5+... 是最大的。
B:x % m + y % m 要么是 0,要么是 m。所以把 ai 都对 m 取模,0 单独考虑,尽量使得 i 和 m-i 拼在一起即可。
C:不知道 C1 和 C2 有什么区别。考虑只有三个数的情况分类讨论。n 是奇数时,是 1 (n-1)/2 (n-1)/2;n 是偶数但不是 4 的倍数时,是 2 n/2-1 n/2-1;n 是 4 的倍数时,是 n/4 n/4 n/2。K>3 的情况一直填 1 直到 K=3 为止,由于 K<=n,所以肯定可行。
D:发现 1 到 i 中互相转移,如果存在 i+1->x 且 x<=i,那么 1 到 i+1 就算一个整体了。而 x->i+1 转移时,只要 x 和 i+1 还不算一个整体就可以转移。然后一看数据范围可以直接 dp。每次选出 x,y(x<y) 且它们的 tag 不相等转移即可。这里难的是转移顺序。首先枚举 y,x 需要从大往小枚举。因为不能出现 j->y->i,且 j<i 的情况。而我们发现转移只有这两种,故保证 x 递减即可避免出现这种情况。
E:很显然的先分解质因数,只考虑每个位置上的奇偶性,那么两个数每个位置要么同是奇数,同是偶数。这里比较套路的(有同样处理方法的题),先把每个数的平方因子去掉,这样题目转化为分成若干段使得每一段内没有相同的数。E1 K=0 的情况贪心就行。E2 K<=20,K 这么小,考虑 dp 啊。设前 i 个位置变了 j 个。但是要优化。你发现 f[i][j]<=f[i+1][j],而转移到 i 的不同 j 只有 20 个。这提示要对每个 j 找到最左边可以转移过来的。然后发现这是单调的,直接双指针就 gg 了。剩下的就是大力 dp 转移了,O(nk^2) 飘过~。
EDU Round 104(contest 1487)
除了在 C 题上浪费了比较久的时间还吃了一发不应该的罚时,其他还行(手速有点慢。
题解速报:
A:一开始题目看错了。后来发现原来一个人输了不会淘汰,那么能力不等于最小值的人都能赢。
B:仔细分类讨论一下。n 是偶数时永远不会相交。n 是奇数时,首先去掉第一轮,然后 (n-1)/2 轮会相交一次,而相交一次 B 会走 (n+1)/2 步,再把剩下多余的几步加上就行了。。
C:还是分类讨论。n 是奇数时,3n(n-1)/2 可以被 n 整除,故直接 O(n^2) 构造即可(就欧拉回路)。n 是偶数时,手模一下结合式子发现要 n/2 个平局就可以了。然后方便的做法是把 i 和 i+n/2 之间平局,剩下做欧拉回路就行了。其实很简单,我一看到也就会做了,但就是不知道为什么搞了半年。谨此告诫自己这种题一定在纸上多写写列举情况而不是脑子里算一个式子。
D:把 c 用 a^2-b 代替得到 x^2=2y+1,z=y+1,直接算出 x^2<=2n-1,且 x 为奇数的个数即可。
E:刚开始写了半天线段树优化建图。。。写着写着发现根本不用,分层的直接贪心就好了。。直接把上一层答案按照权值排序,在这一层暴力匹配上去,这样最多成功匹配 m 次,所以复杂度就对了。然后就是个大暴力题。
F:看着就数位 dp。
G:看着就容斥 dp。