我们假设从起点往左走到 s−as-as−a,往右走到 s+bs+bs+b,显然在走路上花费最少 a+b+min{a,b}a+b+\min\{a,b\}a+b+min{a,b} 的时间,而剩下的时间均拿来参观景点。
考虑枚举 aaa,并且找到最大最优的 bbb。容易发现随着 aaa 的增大,这个最大最优的 bbb 单调不增。
证明:如果 bbb 增了,那么对之前的情况,现在的 bbb 显然对之前的方案更不劣,与最大最优性矛盾。
从而我们可以使用决策单调性的技巧,对 aaa 进行分治,然后枚举决策,对 bbb 的枚举范围进行限定。
拿一个可删的对顶堆使用类似于莫队的方法进行维护即可。
参考代码。
注册一个 BZOJ by HydroOJ 通用账户,您就可以在我们提供的所有在线评测服务上提交代码、参与讨论。
使用您的 HydroOJ 通用账户