ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

[做题记录-图论] [NEERC2017]Journey from Petersburg to Moscow [关于处理路径前$k$大的一种方法]

2021-11-04 08:31:44  阅读:159  来源: 互联网

标签:geq 题意 Moscow 路径 枚举 Journey Petersburg 答案 ans


题意

给定一张连通无向简单图 \(G\),每条边有一个边权。
给定正整数 \(k\),你需要找到 \(G\) 的一条从 \(1\) 到 \(n\) 的路径,设该路径的长度为 \(l\),你需要使得这条路径中边权前 \(\min \left\{ k, l \right\}\) 大的边的边权总和尽可能小。

题解

这种玩意看着人傻了, 一点想法没有, 瞟了下yhx的题意下面几行发现好像是减什么东西才有想法

考虑枚举一条边作为第\(k\)大, 那么如果把所有的边减去这个\(w_k\)并对\(0\)取\(\max\), 然后如果把权补回来, 那么就求出了一条合法的路径。

考虑直接大力枚举每条边和初始不变的情况计算, 那么\(Ans = \min_{w_k}\{Dis_{n} + k \times w_k\}\)。

下面考虑证明这个事情。

令\(l\)表示答案的路径长度。

  • 若\(l \geq k\)。
    • 如果路径上有\(> k\)条变化后有权值的边,那么当前答案会\(\geq ans\)。因为多出来的边应该不算。
    • 如果路径上有\(\leq k\)条变化后有权值的边,那么当前答案会\(\geq ans\)。因为多加了。
    • 当当前枚举的\(w\)恰好是答案路径的\(w_k\)时, 当前答案就是\(ans\), 所以正确。
  • 若\(l < k\)
    • 当\(w = 0\)的时候答案正确。

综上可以发现在没有取到答案的时候我们的做法会使答案变大, 恰好取到的时候会是答案, 直接最短路即可。

标签:geq,题意,Moscow,路径,枚举,Journey,Petersburg,答案,ans
来源: https://www.cnblogs.com/clover4/p/15506582.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有