8.1 NOIP 模拟赛总结
T1
给你一个含有 \(n\) 个问号的形如 max(?,max(?,min(?,?)))
的表达式,将 \(1...n\) 填入 \(n\) 个问号中,求表达式一共有多少种可能的答案。
首先写的 \(10\ pts\) 的全排列,然后想了一会想不出来,就直接扬了。
直接是二叉树,很神奇。
T2
首先想暴力。
发现每回选一个点往外拓,然后比他小的直接吃掉。
然后发现直接暴力的话还要考虑返回,很麻烦。
过了 \(10\ min\) 发现可以用优先队列保证不用返回。
写完就交上去了。
然后发现两个规律:
-
如果这个点可以统一,那么和它相连的点中比他大的点也可以统一,然后就可以一步一步往外拓。
-
如果这个点不可以统一,那么和它相连的点中比他小的点也可以统一,然后就可以一步一步往外拓。
-
考后发现:在这个点拓展的路径上也满足这个规律。
然后加上这个规律交上去,赛后发现过不去;
然后怕暴力写挂就码了个 \(Subtask\ 2\) 。
\(Subtask\ 2\)
就是优化枚举顺序加个并查集。
关于 \(\texttt {ZXK}\) 看到排序和并查集想到重构树这件事……(呜呜呜,我为什么没想到 \(QwQ\))
Kruskal I love You
T3
只看有一组的情况,胡推了个 \(5\ pts\) 柿子。
T4
没看……懂……
标签:8.1,发现,NOIP,可以,然后,往外拓,模拟 From: https://www.cnblogs.com/whrwlx/p/18339291