7月6日模拟赛总结

here.

T1 简单题,dfs 找连通块并维护两边长度以判断是否为方形即可。

T2 想假了,以为细胞壁等同于行首/行尾/列首/列尾,其实随便造个数据就能 hack 掉。从细胞壁的定义出发,实际上它就是与外界直接接触的 #,那么我们考虑从外界某一个点开始 dfs,边走边染色,碰到 # 就回头,这样被染色的 # 就都是细胞壁了。

T3 见过此类套路,但不知为何没想出来。删的操作是困难的,考虑转化为加的操作,即从 \(n \to 1\) 一次加点、加边,每加一个点连通块数量就加一,每成功连一条边连通块数量就减一,然后就做完了。

T4 直接求答案是不好做的,我们考虑验证答案。具体而言,我们将询问离线,按阈值从大到小排序,同时边也按边权从大到小排序。对于每个询问,我们尽可能多地找到符合当前阈值的边,在并查集里面进行合并,然后统计和当前的 \(v\) 在同一个集合里的有多少个点即可。

成绩:100+0+0+0=100/400,rk4。对连通性问题不熟悉导致的。

总结:连通性问题几个技巧——正难则反、路径问题用并查集转化为判定是否在同一集合、求路径方案数顺带着 dp、将问题放在 DAG 上考虑(弱化问题)。

posted @ 2025-07-06 23:04  _KidA  阅读(4)  评论(0)    收藏  举报