tricks

  • 所有问题优先考虑能不能转化为判定型问题,因为 NP 比 P 好做。

例子:

兔子 Zečevi

  • 如果正推不好推,那么可以考虑将问题换个顺序考虑。常见的:若正推出现了自我递归嵌套或 DP 出现后效性,可以考虑倒推。

例子:

friend 朋友

the cure

  • 不定顺序的计数 DP 一般都是按照一定顺序依次插入每个数,这个顺序一般根据题目需求定。

例子:

摩天大楼 / Skyscraper

  • 当比较技巧性的东西没法使用时,优化暴力可能反而是更好的做法。

  • 如果要求构造数列,切每个数出现次数尽可能小,且相邻两项的一些关系不同,可以尝试转化为图上跑欧拉路径问题。

例子:

Distinct GCDs (Easy Version)

Distinct GCDs (Hard Version)

  • 前缀(后缀)限制加连通性判断,可以使用 kruskal 重构树。

例子:

werewolf 狼人

posted @ 2026-09-04 15:01  cwxcplh  阅读(5)  评论(0)    收藏  举报