社区讨论
关于本题或许正确的做法
P3238[HNOI2014] 道路堵塞参与者 9已保存回复 10
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 10 条
- 当前快照
- 1 份
- 快照标识符
- @lo8kdbad
- 此快照首次捕获于
- 2023/10/27 20:02 2 年前
- 此快照最后确认于
- 2023/10/27 20:02 2 年前
RT。
注意:仅是讨论而不是讨论区题解。
能够通过BZOJ的 数据。
借用 CF1163F Indecisive Taxi Fee 的做法,由于本题转化为无向图,从 向 求 时使用原图的反图(即 的边转化为 的边。
在线段树维护 时由于边是单向边,只能加入 的贡献,即对原链上 的点与 取 。
统计答案时特判无解即可。
然而这样做无法通过下面的数据:
CPP4 7 2
1 2 1
2 4 1
2 3 1
3 1 1
4 2 1
1 3 100
3 4 100
1 2
答案为
CPP200
102
而输出为
CPP-1
102
考虑为什么会判为无解。
尝试去掉边 ,发现答案正确。
通过遍历中间值发现在求解 时出错,原因在于在反图上跑 时 更新了 后, 通过边 更新了 ,导致 的 计算错误。
而这就直接导致在更新 的贡献时什么都没有更新。考虑在原图上产生了什么影响。
事实上,我们更新 的意义是在不经过某些边的情况下辅助求解最短路,然而在更新 的时候 却提前到达了 。
在下面我的代码中,在 中从 更新到 后若 已经到达终点,强制 不能进行下一步的转移。
欢迎
hack。回复
共 10 条回复,欢迎继续交流。
正在加载回复...