16届东北四省赛题解
2022东北四省赛题解
SA+二分
贪心+树形+二分
在一棵树上选择k个相连的点,要求最小化离这k个城市最远的城市的距离
首先我们贪心的想,当这棵树的根节点是直径中点的时候,一定有其他所有城市离根开始延申的城市的距离最小。
然后就是做一遍树型DP求出来每个点往下延申的最长深度,接着二分答案最小化的城市距离,一遍dfs,如果当前点到往下延伸的点的距离大于k意味着当前点也需要被选上,check最终选的点的数量是否<=k即可
1 | const int N=200010,M=N*2,mod=1e9+7; |
找规律题。手动模拟下线段树叶子节点的增加情况可以发现:
1 | void solve(){ |
随机化/莫队
我们很容易发现如果[l,r]中出现的个数都是偶数个则先手必败。正常做可以使用莫队,但是VP的时候我们是用随机化过的,因为给每个数随机出一个比较大的数可以防止出现a^b^c=0的情况。
1 | const int N=200010,M=N*2,mod=1e9+7; |
签到+诈骗+打表
VP的时候先猜了一个结论:这个解很少,然后打了一个表发现只有p=2,q=3为解。
1 |
|
这是一道复杂度分析题,通过分析每一次操作我们可以发现这道题完全可以暴力。我们只需要暴力维护每一段即可。
1 |
|
签到题
1 |
|
K.Maze
分层图BFS,签到题
1 |
|
L. Polygon
签到题
1 |
|