3/3考试总结

时间安排#

7:30–7:50 看题,怎么感觉三道构造,T3 貌似有网络流背景。
7:50–8:30 T1,有一些简单的性质,缩减两端点后枚举一下翻转的区间就可以了。然后花了一点时间写 spj 调试。
8:30–10:20 T2,比较纯粹的构造题。有网络流做法,但是复杂度过于紧,空间也卡的很死,估摸着也就比手玩多个 5 到10 分左右。考虑构造,手玩一下没找到什么规律。琢磨样例发现有几个比较固定的方案,于是把这些方案拼起来。细节一大堆写写写写到 10:20 。直接去看 T3 了。
10:20–11:30 T3,状压是好求的。考虑更高的部分分,显然可以用网络流求个最大独立集什么的,然后 dfs 一下发现不是二分图,于是就不会了。想了想不可能裸上网络流,应该是有性质什么的,瞪了一会没瞪出来。
11:30–11:50 回头看了一眼 T2 ,随便玩了几个小样例发现好像有反例,但是没什么规律性,好像也没法变成系统的构造方案。

回顾反思#

T2:
赛时一直在找规律的构造。
然而事实上赛后参考了一下同学的做法,发现就没啥规律,对小数据硬打表然后把小规模的方案拼起来。
还是要勤于动手去搜。
一个人类智慧的点是,用单位长度为 4 的规模取拼的时候可能会遗留一些不够 4 的很小的空隙,小的空隙不好归纳,可以考虑牺牲一些已经拼好的位置将其规模扩大 4 然后做。
T3:
没有发现边的传递性。
发现边是传递闭包后,可以钦定一个边的方向,于是由无向图变为dag,变成了求最小链覆盖问题。
于是就可以建出拆点二分图的模型了。
最小链覆盖的模型不太熟悉。这种性质的敏感度要加强一下。
这个可以网络流解决。不过需要优化。
一个神奇点是,尽可能贪心的匹配后,剩下的未匹配的点数量是 n \sqrt n n 级别的。这个题解里没有给出证明,我也不太会证。
以匈牙利算法为例,增广的过程中,一个优化是,对于一个点 x ,有若干出边 y ,那么之后递归到点 z 时的增广无需再考虑出边 y 。因为传递闭包,z 考虑出边 y ,不如 x 考虑出边 y 。于是一次増广中每个点的出边只被考虑一次。

posted @   Cafard  阅读(8)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示
主题色彩