3/2考试总结

文章描述了一位参赛者在编程竞赛中的时间分配和解题思路,涉及构造问题、圆方树动态规划、不同暴力解法的尝试以及Manacher算法的理解和应用。作者反思了在面对题目时过于急躁和未能深入剖析问题的不足,强调了对算法深入理解的重要性。

时间安排

7:30–7:50 读题,T1 貌似是个构造,T2 应该是个圆方树 dp 加上一些神秘的暴力,T3 不知道是啥。
7:50–9:00 T1,发现没法暴力。考虑能不能构造什么的,好像也不好构造。可能是个别的什么东西。手玩样例有一些结论,不过涵盖不了全部情况。
9:00–10:30 T2,第一眼以为是仙人掌,理解了几遍才知道是点双。有暴力。 s<=3 可以在圆方树上暴力 dp 一下。s 最大不超过6 ,很神秘,感觉是有某种神奇的方法比如搜索什么的得到一个可以方便 dp 的同色连通块的信息,想了想感觉直接搜索复杂度不太对。然后就不会了。
10:30–11:30 T3,有 n^2 的暴力。然后对于 m=2 可以分类讨论然后无脑上 hash 比较。正解的档有60 分很神秘,感觉暴力的做法很难继续优化。估计是有什么性质什么的。
11:30–11:50 检查了一下数组大小。

回顾反思

T1 :
首先一个是存在偶数时的构造,这个想到了。
没想到的是奇数的。
考虑每个数由两个元素构成,对应一条边,然后可以发现等价于存在两个集合和相同,那么设为集合A,B,考虑 A-B 的差值就可以了。
折半一下。
赛时一直在想怎么直接构造了,没有考虑到环的模型。
遇到题还是不要看着是什么就急着做什么,还是要深入剖析一下。
T2:
圆方树什么的赛时想到了。
感觉瓶颈是卡在怎么处理同色连通块的信息上了。
一个集合是否连通是可以 dp 出来的,
对于一个大小大于1 的点集 S ,其连通当且仅当存在一个内部的点 x ,使得剩下的部分连通,且 x 的邻域与 S 有交。
一个点集若干连通块的答案就是划分出若干同色连通块答案的累计。
感觉涉及到不具体的图时就有点畏手畏脚。
赛时一直想着有什么比如dfs之类的能把信息神奇的搜出来,压根没有去想着直接 dp 这个信息。
T3:
依旧是考查对算法深入理解的题。
上一回是 kmp ,这一回是manacher 。
对于 manacher 本质上的可用范围有了一个更深入的认识,以前学的太浅显了。
于是套用 manacher 的算法做就可以了。
一个问题是 manacher 中在继承时会因为取 min 少一段,这一段信息难以直接维护出来。
不过有 manacher 神奇的性质,这一段暴力缩减回去复杂度是对的, 整体均摊 O(n)
于是如果少了一段,暴力一步一步缩减回去更新就行了。

manacher 的回撤可以暴力回撤

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值