2020.09.26【NOIP提高组】模拟 GMOJ
4223. 【五校联考3day1】旅游 (Standard IO)()
1.比赛刚看到这道题时觉得可能会用到什么奇奇怪怪的算法,
但我们发现这道题并不要求强制在线,所以我们可以考虑从最小的边开始一条一条的加入进去,然后用并查集维护直到比当前未计算的最小询问x大。
然后再换一个大一点的x继续操作 所以累加答案为: ans+=cnt[x]cnt[y]2,x--->y(cnt[]表示该连通块的大小)
比赛时我明知道有多组数据But,ans忘记赋初值了(呜呜呜...)
6803. NOIP2020.9.26模拟tom( )
题目大意:
给你一棵树,然后给树上的点标号 1,2,3,4,5.....a和-1,-2,-3....-b,a+b=n;a,b>=1;然后你可以随机删去正数中最小的一个点,或负数中最大的一个点,使这棵树不为森林,一直删直到没有点。输出1~n,的标号。不行就输出-1;
我们可以清楚的发现一个结论: 一定要把树分成两颗树(断开一条边)一个为a序列,另一个为b,然后对每个子树进行标号,从叶子节点依次往上,注意断开的那条边所连接的点(u---v)u和v必须分别是最后一个序号。
然后完结撒花 若有不懂请感性理解加思考
6804. NOIP2020.9.26模拟jerry( )
这篇博客写的不错,(https://blog.csdn.net/Daniel__d/article/details/102734137)
我考场没什么思路;
6805. NOIP2020.9.26模拟speike( )
这又是一道奇奇怪怪的题目。。。。
考场时,我手玩了几个数据发现无论哪种最优走法,它横着走的距离是一定的就是Xt.所以我们就只用计算出上下走的最短距离,并把矩形看作一条竖线
然后我发现当一直直走碰到一条线时,我们必须从上面或下面绕过去,并且走到该直线最上端或最下端时只需继续直走就是最优的,不必再往下或往上走(除非你又碰到一条直线)
然后我们就可记录一下路径,先将直线从左到右排序,第一条路径就是起点的纵坐标,当碰到一条线时就会从一条路径变成最上端最下端两条路径,若有多条路径碰到同一条直线就只需取到达最上端或最下端的最短路径,然后又是变成两条路径继续往下进行。 到达终点就结束并更新答案。
具体该如何记录,其实也很简单,有多种方法这里就不细讲,请感性理解加思考。
完结撒花。。。若有问题请指教