NOI2017

游戏

  • a 就必须选 b 这种逻辑语言,事实上就已经很有 2-SAT 的特征了

  • 这个 d8 ,那么考虑枚举每个 x 的场地类型

  • 假设现在确定了所有的场地类型,对于场地 A ,要么选 b ,要么选 c ,对于场地 B,C 同理

  • 那么每个场地有两个选择,对于每个限制条件,假设是选 x 就必须选 y ,那么连边 (x,y) 表示选 x 就必须选择 y ,连边 (y,x) 表示选了 y 就必须选 x

  • 然后就是 2-SAT 裸题了

  • 参考代码

总结

  • 2-SAT

  • 2-SAT 构造方案是选择两个点所在强连通分量的编号中更小的一个点,这不要记错了 (我之前就是记错了)

  • d 枚举的时候枚举两个就够包含所有的情况了 (我一开始直接枚举 3 个,然后一跑最后一个点跑了 1min 才发现这一点)

  • 注意 2-SAT 连边的时候一定要将每一个限制条件换成边连上,尤其是那些比较隐含的限制条件,比如上述点 4 中后面的一条边,我一开始是没有连的,导致出现了问题,所以连边的时候 4 个点都要考虑一下能选择的方案是否有限制

蚯蚓排队

  • 字符串匹配问题,而且看起来很暴力,考虑 Hash

  • 思路还是很好想的,注意到 t50 ,我一开始以为复杂度为 O(nk2+|S|)

  • 注意到 c1000 ,一开始还以为是对于分裂特殊处理

  • 但是我觉得上面那个复杂度可以跑过去,这个 c 完全没用

  • 其实上面那个复杂度加上常数可能就跑不过去了,思路还是那个思路,这个 c 其实是帮助我们分析复杂度的

  • 因为合并的有用子段为 O(nk),所以总的复杂度其实是 O(nk+ck2+|S|)

  • 注意这个题因为数据量的问题,自带卡单哈希,所以要用自然溢出或多哈希

  • 参考代码

总结

  • Hash

  • 这个题还是很好想的

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