2021.01.23【NOIP提高A/B组】模拟 Summary

2021.01.23【NOIP提高A/B组】模拟 Summary

第一题

可以证明 b ⊆ a b\subseteq a ba,题目就变成将 a a a中可以被表示的数表示出来。排一下序,就是背包问题了。
这种题目要把显然得到的关系求出来,然后转化题目,看是否能用已学算法做出来。

第二题

分两种情况。第一种是树:就每次选择当前局面最小的点就行了。第二种是基环树:我们发现其中一条边没用,所以考虑删掉一条边,然后就变成了树,就容易了。删除的这条边一定在基环树的环中,用并查集找环即可。
这种题目我们要将难的问题转化为比较简单的问题,然后用简单的问题求解。

第三题

看到最小值最大,用二分。然后设 f x , r e s t x f_x,rest_x fx,restx分别表示以x为根的子树可以构成多少个合法的链,还剩一条最大不合法链的长度。然后转移显然。将不合法的链排序,一一配对,用贪心,最大的与最小的配对。求 r e s t rest rest时要用一个二分这个值,然后看一下删掉某个不合法链是否仍然不会影响答案,如果不会,就选,选一个最大的即可。
这种题目显然是二分,然后要多想一想部分分,部分分可能是正解的一部分,比如说这题的菊花图就是这道题目关键点。

你可能感兴趣的:(比赛总结)