AtCoder Beginner Contest 320
一言:
当毫无寄托的两颗心紧挨之时,真正的悲伤开始展翅翱翔。
——空之境界
终于在 ABC 搞过了揭老汉啦!
首先不难想到一个二维的
但是由于每个加油站只能用一次,所以这样的话就有后效性。
发现
既然过去和回来加起来只能选一次,那就考虑把两者都统计,定义
显然,我们只需要枚举第
非常容易想到去枚举最终的那个数字,但是我却没有想到可以二分答案。
然后我们考虑去判断。
可以考虑建立一个二分图,左边节点为每一行,(右边节点为时间),连向满足条件的时间(即这个时间转到的是最终数字)。最后看他的最大匹配是否是
但是这个
所以最终复杂度
-
当每个数有可能正着倒着被预选,但他又只能被选一次,且你只能动态规划时,考虑
的选数同时进行,定义 同时维护进行到的 ,以及正着和倒着的信息 ,转移的时候看 是给了正着,倒着,还是都没给分别转移即可。 -
有单调性的题目一定不要忘了二分啊!
-
当一个点需要连很多边来实现自己的算法,但是你发现当一个点建立了一定量的边之后他的答案已经已知了,那么对于他之后的边就不要建了,不然容易让算法的时空复杂度假掉。
-
如果对于每一个东西他需要选一个时刻保证其合法,而每个东西选的时刻必须不一样,要看最多有多少个东西合法(或者能不能够让所有东西合法)时,考虑二分图,或者在其他扩展情况下,可以考虑网络流。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】