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\),把上面两个式子变一变:

\[2 \times dep_{lca} - dep_u = dep_x - w_x \]

\[dep_u = dep_x + w_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

\[C_n^m = C_{n-1}^m + C_{n-1}^{m-1} \]

预处理前缀和就随便过。

时间复杂度 \(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

笑死,根本没读题

posted @ 2021-07-01 16:35  Suzt_ilymtics  阅读(58)  评论(0编辑  收藏  举报