Processing math: 100%
[Testing Round #13][Codeforces 753C] Interactive Bulls and Cows (Hard)
[2016-2017 ACM-ICPC CHINA-Final][GYM 101194 E] Bet

[Codeforces Round #248][Codeforces 434D] Nanami's Power Plant

Zarxdy34 posted @ 2017年12月09日 20:29 in Codeforces with tags 网络流 , 647 阅读

    题意:有n个点,设每个点的权值为xi,要求Li<=xi<=Ri,另有m个约束ui,vi,di表示xui<=xvi+d,求f(i,xi) (f(i,xi)=aix2i+bixi+ci)的最大值。(1<=n<=50,0<=m<=100,|ai|<=10,|bi|,|ci|<=1000,|di|<=200,且题目保证有解)

    题解:这种约束一般用网络流做,先直接讲一下建图方法。由于网络流求得是最小割,而我们要求最大值,所以可以先取一个足够大的M,使M>=max{f(i,xi)}

    1.将第i个点拆成Li1...RiRiLi+2个点,记为node(i,x)

    2.从S向node(i,Li1)连一条容量无穷大的边。

    3.从node(i,Ri)向T连一条容量无穷大的边。

    4.从node(i,x)node(i,x+1连一条容量为Mf(i,x+1)的边,Li1<=x<Ri

    5.从node(ui,x)node(vi,xd)连一条容量为无穷大的边,其中Lui1<=x<=Rui,Lvi1<=xd<=Rvi

    第5次连边可以完成约束条件,这个从该图的最小割模型中很容易看出来。

    答案即Mnmaxflow

 

 


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter