码迷,mamicode.com
首页 > 其他好文 > 详细

CF1307G

时间:2020-11-20 11:51:00      阅读:6      评论:0      收藏:0      [点我收藏+]

标签:isp   需要   题目   class   href   mat   cost   its   div   

题意

cf

做法

\(l_{u,v}((u,v)\in E)\)为边\((u,v)\)的边权
\(x_{u,v}\)为对边\((u,v)\)的增量
\(X\)为总增量限制
\(d_i\)为一组增量序列\(\{x\}\)对图造成影响后,从\(s\)\(i\)的最短路径

可以发现\(d_s\)是什么并不重要,我们将其写成线性规划的形式

\[\max(d_t-d_s)\\left\{\begin{array}{} d_v\le d_u+l_{u,v}+x_{u,v}\\sum\limits_{(u,v)\in E}x_{u,v}\le X\x_{u,v}\ge 0\\end{array}\right. \]

二分\(d_t-d_s\ge \lambda\)来判断答案

\[\min(\sum\limits_{(u,v)\in E}x_{u,v})\\left\{\begin{array}{} d_v\le d_u+l_{u,v}+x_{u,v}\d_t-d_s\ge \lambda\x_{u,v}\ge 0\\end{array}\right. \]

发现这个其实就是\(min(max(\lambda +d_s-d_t,0)\cdot \infty+\sum\limits_{(u,v)\in E}max(d_v-d_u-l_{u,v},0)\cdot 1)\)
于是我们对偶到最大循环费用流上
\(s\longrightarrow t(flow:\infty,cost:\lambda)\)
\(v\longrightarrow u(flow:1,cost:-l_{u,v})((u,v)\in E)\)
不考虑第一类边,对\(t\longrightarrow s\)跑最大费用流,令流量为\(i\)时费用为\(f_i\),则总费用为\(i\lambda+f_i\)
则最大循环费用流为\(max(i\lambda +f_i)\),需要满足\(\le X\),即\(\lambda\le \frac{X-f_i}{i}\),于是我们发现不用二分了

由于题目保证没有重边,故最大流量是\(O(n)\)的,询问是枚举\(i\)即可

CF1307G

标签:isp   需要   题目   class   href   mat   cost   its   div   

原文地址:https://www.cnblogs.com/Grice/p/13978598.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!