社区讨论

这个做法能过吗?

P14362[CSP-S 2025] 道路修复参与者 2已保存回复 1

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
1 条
当前快照
1 份
快照标识符
@mhksv838
此快照首次捕获于
2025/11/05 00:45
4 个月前
此快照最后确认于
2025/11/08 07:46
4 个月前
查看原帖
RT。
思路:枚举每个点k,对于每个k选择离它最近的城市连边,设这个城市为x,做一次dfs,记录每个城市的入边边权,若这个乡村里这个城市的距离小于入边边权,那么就删去入边,对于这个乡村与城市连边,统计减少的边权总和,如这个总和小于改造费用加上第一条边的费用,则保留此次变化,否则就不保留。
如何hack?
若看不懂:这里有形式化过程。
对于样例1,原有最小生成树是1-4 2-4 3-4三条边。
对于乡村1重建花费1,离它最近城市1,这两项花费总和2 在1开始做dfs,2的入边边权:2-4=5,3的入边边权:3-4=4,4的入边边权:1-4=6
而乡村一到城市2距离8<5,不进行修改保持2-4,到城市3距离2<4,做一次修改删去3-4,链接乡村与3,到城市4的距离4<6,删去1-4,连接乡村与4。
剩下的边权x=(4-2)+(6-4)=4,4>2,保留此次城市化。
现在的树边为乡村-1,乡村-3,乡村-4,2-4
现在的费用为1+2+4+5+(改造费用)1=13。
对于乡村2也是同理,不过由于省下的边权小于那两项花费,故不进行修改,最终答案13。
如何hack?
如有疑问可在讨论区@我

回复

1 条回复,欢迎继续交流。

正在加载回复...