NOIP2016-2020 复盘
NOIP 2016 day1
\(215pts\)
T1
清新小模拟
T2
太恶心了这道题。
原来贺的已经忘了,又贺了一遍发现还是不会。
感觉线段树合并比较好理解。
大概要分两种情况讨论。
设观察员为 \(x\),\(u,v\) 分别是起点和终点。
如果 \(x\) 在 \(v - lca\) 的路径上:
有:\(dep_u - dep_{lca} + dep_x - dep_{lca} = w_x\)
如果 \(u - lca\) 的路径上
有 \(dep_u - dep_x = w_x\)
枚举每个跑步的人太难搞了,考虑枚举观察员 \(x\),把上面两个式子变一变:
考虑把每个节点当做权值线段树。维护每个权值的出现次数。
初始化利用树上差分的方法进行修改即可。
\(dfs\) 回溯时用线段树合并将几个节点的信息合并到一起,然后查询 \(dep_x - w_x\) 和 \(dep_x + w_x\) 出现了几次统计答案。
T3
细节巨多的期望 DP。
设 \(f_{i,j,1/0}\) 表示时间 \(i\) 已经选了 \(j\) 次这一次选不选的最小期望。
两点之间距离之间 \(\text{Floyd}\)。
剩下的就是大力分类讨论了。
NOIP 2016 day2
\(265pts\)
T1
预处理前缀和就随便过。
时间复杂度 \(O(n^2+nt)\)
T2
想到了一个 \(65pts\) 的线段树做法,暴力维护更改和求最大值。
正解:
开三个队列。
首先把所有元素从大到小插入第一个队列。
然后从三个队列中取最大值,剪断后放入二三队列,发现他是由单调性的,所以不需要用优队。
对于每次剪完加 \(q\),可以只把剪断的两条蚯蚓减去 \(q\)。
T3
状压DP。
注意小鸟不能直着飞或者向上飞。
然后判断一个解析式内的一头猪是否能被打死是限制 \(lim\) 取 \(10^{-9}\) 左右就可以。
NOIP 2017 day1
\(230pts\)
T1
结论题
T2
屑模拟
T3
只会 \(30pts\) 暴力 /kk
正解是一个挺牛逼的记搜
NOIP 2017 day2
\(195pts\)
T1
并查集,bfs等随便过。
T2
写了个假贪心,\(45pts\)。
同时写了个假搜索,后来看题解发现有一点地方写麻烦了,稍微改一下 \(70pts\)。
加上记搜就可以过了。
不过这个记搜的正确性是假的。
T3
暴力有 \(30pts\) + \(20pts\) 的平衡树
感觉 \(100pts\) 的平衡树,树状数组,主席树做法都比较牛逼
NOIP 2018 day1
\(230pts\)
T1
贪心
T2
完全背包 + 贪心
T3
二分答案 + 贪心
NOIP 2018 day2
\(124pts\)
T1
\(60pts \ \ m = n - 1\) 的情况。
\(100pts\),暴力删边 \(O(n^2)\)。
T2
\(20pts\) 打表
\(30pts \ n=2\) 是 KnighL 发现神奇规律 \(4 \times 3^{m-1}\)。
T3
\(44pts\),只会 \(O(n^2)\) 暴力。
NOIP 2019 day1
\(165pts\)
T1
有关格雷码的结论题
T2
\(55pts\) 的暴跳
T3
\(10pts\) 枚举全排列
其他的并没有想到很好的贪心方式 /kk
NOIP 2019 day2
\(32pts\)
T1
打了二十分暴力
T2
写了发单调队列,一直调不出来,只有乱搞的 \(12pts\)
T3
笑死,根本没读题