7.20 做题记录

由于剪切板被误删了,所以搬运比较合适的题解。

[ARC150F] Constant Sum Subsequence

Solution

总结:

  • 判定条件严格时,考虑扩充条件
  • 利用单调性和分治结构减小状态数

CF1523G Try Booking

Solution

总结:

  • 区间不交可以考虑分治

CF1464F My Beautiful Madness

Solution

总结:

  • 集合到集合 / 点的信息考虑找代表元
  • 直径的封闭性

CF1017G The Tree

Solution

总结:

  • 操作形式复杂可以使用贡献法
  • 贡献满足可减性 - 逆操作

[AGC046D] Secret Passage

Solution

总结:

  • 自由元延后决策(适用范围:)
  • 不重不漏计数:双射

CF1446F Line Distance

Solution

总结:

  • 考虑结构之间的投影(适用范围:)

CF1750F Majority

任意操作可以简化成每次选择一段形如 \(1...10...01...1\) 的合法子串。

一个串合法当且仅当它不存在一个无法消去的 \(0\) 段,但是如何计数?是否需要容斥?

实际上,我们可以考虑补集转化,计算不合法的串的数量,当且仅当每个 \(0\) 段的长度 \(>\) 两边 \(1\) 段的长度,这样记 \(f_{i,j}\) 表示总长为 \(i\),最后一段长度为 \(j\) 的不合法串方案,枚举下两段转移,同时维护一个斜对角线的前缀和来优化,时间复杂度 \(O(n^2)\)

总结:

  • 本题如果直接计算恰好有 \(0\) 个不合法段是困难的,这时候就可以利用对偶问题。

  • 先找判断的简化条件,然后用简化后的限制计数。

posted @ 2023-07-20 20:32  墨珂  阅读(23)  评论(0)    收藏  举报