NOIP2024集训 Day51 略解
前言
你只记得,努力之后,是九死一生。却忘了,若不努力,便是十死无生。
感觉今天的题充其量也是一堆典题,可是我还是菜的不会几道,做过的都不会了。。
Cheap Robot
显然,你可以先从每个充电站出发跑一个多源最短路,得到每个点
有一个更加显然的东西是,你无论当前走到了哪个点,假设是
同理,如果你要到达一个点,那么油箱容量也必须
那么,你发现,对于任意一条边
显然直接上
有序奶牛
题目保证按照输入的偏序建边一定是个
一个比较直观的删边方法就是你再删掉这条边之后,剩下的边仍然可以使得这条边的起点到达终点。
具体实现就是你先跑一边拓扑序,然后对于每一条边
然后你按照排序后的顺序遍历每条边,更新连通性即可,可以通过
变换序列
按照题目中给得
字典序的话你直接对于边权最小到大遍历即可。
Dynamic Shortest Path / 动态最短路
挺不错的一道题。
暴力思路是你对于每次操作之后跑一遍
我们发现这个
有一个比较重要的东西是,如果
我们发现每次修改
观察到
Exhausted?
显然有一个非常劣的贪心性质是,按照
但是由于无法满足
我们再考虑一下,如果左边塞不下了,那么无论如何,都要有一个人坐到右边,那么我们可以吧左边有位置的一个人踢出来,让他坐在右边。那我们肯定是把
那就好办了,我们往左边塞的时候,坐不下就把
对于贪心的正确性,可以从霍尔定理的角度进行理解。
自行车
首先,我们先看什么时候一定不合法。即你对于任意三个点
然后这个时候你直接搞一个完全图应该就可以直接合法了,但是边数会炸掉。考虑能不能搞出一颗合法的生成树。
显然这个地方你要搞一颗最大生成树,因为你是要两个点路径上最小值的最大值为
同理,直接对
然后将
兔兔与蛋蛋
一道不错的二分图博弈好题。
如果你直接按照局面暴力
首先有一个很重要的性质是,每个黑白棋只会被移动一次,这个应该可以非常简单的通过奇偶性进行证明。
而有了这个性质的基础,我们就可以尝试把每个点放在二分图上,对于空格看作黑点,因为是兔兔先移动,黑白染色直接放上去,然后黑白之间建边。
由于每个点只会被移动一次,换句话说就是棋盘上每个点只会被经过一次,从而对应了二分图博弈类似的下棋问题,也迁移到了二分图匹配每个点只能在一个匹配上面,然后就直接套板子。
对于兔兔的失误在哪里,就是他操作之前是必胜,操作之后是必败,这一步就是失误,直接暴力二分图博弈判断即可。\
后记
I wish I was special
You're so very special
But I'm a creep, I'm a weirdo
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】