06.03 考试总结
前言
听 ysu 啰嗦了一会,但是觉得讲得很对,晚上和 Qiuly 聊了聊,发现题目总结还是要以细为好。
包括题目大意之类的,但是我觉得 ysu 和 cy 真的不要搞 AT 的英文,看又看不懂,又只有两个小时。
题目:ABC192F。
T1
感觉很水,但是调了一会。
考虑枚举选了多少个数,然后去 DP,你发现其实选出的 \(sum\) 要与 \(x\) 在选出的数的个数意义下同余,你发现这个东西要去 DP 就好了。
题目:ABC195E。
T2
感觉很套路,也是 DP。
有个套路是,为了避免博弈论带来的后效性,我们可以倒序枚举状态,考虑你在搜索的时候,也是先搜索后面的,然后回溯时去转移,所以要先求解后面的结果,然后再 DP。注意到我们可以设 \(f\) 为是否能被 \(7\) 整除就 OK 了。
题目:ABC199E。
T3
考虑 \(n \le 18\),所以可以状压。
考虑算出合法状态有哪些,从合法状态中进行转移,你可以变成一个二进制数的数点问题,但是这道题码量还是特别多的,所以感觉很妙妙。
T4
赶快来补锅。
考虑一个事实,\(\gcd \le \min\)。
也就是说,无论什么时候执行 \(\min\) 操作,都是一样的,也就是说我们可以先对于一段自己进行 \(\gcd\) 操作,然后再取 \(\min\)。
很明显,对于一段子集的 \(\gcd\) 的 \(d\) 来说,是一定小于 \(\min(a_i)\)
的,所以我们只需要对 < \(\min (a_i)\) 的所有 \(d\) 进行计算就 OK 了。
发现一个事实是,数越多, \(\gcd\) 越小,所以说要枚举所有因数包含 \(d\) 的数,看他们的最大公约数等不等与 \(d\),就行了。因为考虑这些数的 \(\gcd\) 的因数一定是要包含 \(d\) 的。
T5
好像是扩欧,不会欸。
T6
为啥讲完这道题是 wanglelong 后就非常那啥了,但是还是要看看题解的思路才能想出建模。
不难发现,这道题如果是网络流,则要用最小割解决(因为发现只有一种情况,就是相邻之间连边)。
考虑如何建图,发现如果是相同的贡献为 \(1\) 是很好求的,就是把 \(B\) 连向源点,\(W\) 连向汇点,相邻之间连一下边,跑一遍最小割就可以了。发现最终答案是总边权为 \(1\) 的个数减去最小割。
我们考虑相邻之间不同的贡献能否通过这种方式建图,肯定是不行的,因为我们要求的是最大值,所以在图里面,不同的都会被割掉,就变成最小的了(画一下图就知道了),其实我们有一种很妙的方法,网格图是一种天然的二分图,所以当条件是反的时候,我们可以按照二分图将网格图反过来,也就是说,把所有 \((i + j)\) 为奇数的点颜色全部取反,就行了,不难发现这种情况下相邻相同的贡献等于之前相邻不同的贡献。
其实只要是相对不同就行了,所以也可将偶数的点翻转。
意义
感觉这场考试还是非常妙的,让我深感自己的弱小,同时也告诫我们要多打比赛,发现自己的问题。

浙公网安备 33010602011771号