NOIp 2016 Senior Solution

Day 1

玩具谜题

Solution

直接模拟即可

天天爱跑步

Solution

题目数据范围提供了起点/终点的特殊数据,显然是在提示我们考虑将每条路径拆分为两条至\(LCA\)的路径

令一个士兵出发点为\(s\),终点为\(t\),到达终点的时间为\(dis\)

考虑出发点对其祖先\(x\)的贡献:\(dep[x]+time[x]==dep[s]\)

考虑结束点对其祖先\(x\)的贡献:\(-dep[x]+time[x]==-dep[t]+dis\)

用DSU On Tree维护桶即可

注意在对于起点与终点分别在\(LCA/fa[LCA]\)打标记清除贡献

复杂度\(O(nlogn)\)

换教室

Solution

令\(f[i][j][1/0]\)表示第\(i\)天已用\(j\)次机会换/不换课的期望

直接转移即可

Day2

组合数问题

Solution

用组合数递推式取模,二维前缀和预处理即可

蚯蚓

Solution

85%:直接用堆模拟

100%:显然先切的蚯蚓切完后一定仍比后切的切完大,再开两个单调队列维护切完后的两半蚯蚓即可

 

愤怒的小鸟

Solution

预处理每两只小鸟组成的抛物线能打掉多少小鸟

再状压即可

注意抛物线\(a\)必须小于0

复杂度\(O(2^n*n^2)\)

 

NOIp 2017 Senior Solution

0 0 vote
Article Rating
Subscribe
提醒
guest
0 评论
Inline Feedbacks
View all comments