• 由《NOI2008志愿者招募》来看网络流(费用流)优化线性规划的一类问题


    0

    在用网络流解线性规划前,我们需要明白网络流本质上是一个什么样的线性规划?

    网络流的每条边的流量相当于一个未知数(x)(0<=x<=这条边的流量上限)

    网络流中除了超级源和超级汇的点都满足流量守恒,也就是(sum x_{流入}=sum x_{流出}),就是线性规划中的等式。

    通常情况下,我们要使(x)的带权和最小,所以每条边还有个费用。

    1

    noi2008志愿者招募:

    申奥成功后,布布经过不懈努力,终于成为奥组委下属公司人力资源部门的主管。布布刚上任就遇到了一个难题:为即将启动的奥运新项目招募一批短期志愿者。经过估算,这个项目需要N 天才能完成,其中第i 天至少需要Ai 个人。布布通过了解得知,一共有M 类志愿者可以招募。其中第i 类可以从第Si 天工作到第Ti 天,招募费用是每人Ci 元。新官上任三把火,为了出色地完成自己的工作,布布希望用尽量少的费用招募足够的志愿者,但这并不是他的特长!于是布布找到了你,希望你帮他设计一种最优的招募方案。

    1 ≤ N ≤ 1000,1 ≤ M ≤ 10000

    考虑设第(i)类志愿者用了(x[i])个。

    对第(j)天,有需求:
    (sum x[i]*[s[i]<=j<=t[i]]>=A[i])

    不等式不是很能网络流,我们添加变量(a[i]>=0)把不等式变成等式:
    (sum x[i]*[s[i]<=j<=t[i]]-a[i]=A[i])

    这样一共得到了(n)条等式,设第(j)条方程为(B[j])

    (B)差分后,我们会发现,每一个(x[i])只会出现在两条方程中,即第(s[i])条和(t[i]+1)条,第(s[i])条中的系数是(+1),第(t[i]+1)条中的系数是(-1)

    把每条方程看做一个点,对每个(x[i]),让系数为+1的地方向系数为-1的地方连边,容量上限是无限,因为这题(x[i])可以无限大,费用即是(c[i])

    对添加的变量同样如此。

    对每条方程(j),等式右边还有一个系数,设它为(y),此系数的意义是流出-流入,所以当(y>0)(S->j, r = y)

    (y<0,j->T,r-y)

    最后跑最大流最小费用即可,即用费用流去解线性规划。

    【BZOJ4842】[Neerc2016]Delight for a Cat:

    这题和上题几乎没有差别,就是(x[i])有了上限而已。

    JZOJ6476【GDOI2020模拟02.19】A :

    这题是树上版本的,同理对方程做树上差分(每个点的方程减去儿子的),可以让(x[i])只出现在两个方程中。

    这样做最后得到图和上下界费用流转换后的图一毛一样。

    2

    https://www.cnblogs.com/Houjikan/p/4379345.html

    这篇博客讲了最小割去解线性规划。

    这种思想比较局限,直接能解的问题非常少。

    面对复杂的最小割问题时还不如直接想。

    我就找到一个这么搞的:

    URAL 1833|Hopes of Rowing|最小割

    https://blog.csdn.net/huanghongxun/article/details/82943321

    但这个题也可以直接想最小割的,比较套路。

    3

    https://wenku.baidu.com/view/8ea84889d4d8d15abe234eb6.html

    这篇ppt的意思是网络流搞线性规划,可是说的不详细。

    最后的6道题目按它的意思都可以用上面的方法搞出来,就是没有解析。

    我发现确实都可以,但是有些题真的不如直接上。

  • 相关阅读:
    DES加密/解密类。
    断言与单元测试
    空对象模式和扩展方法的NULL验证
    防御性判断
    行为型-观察者模式、基于事件的观察者
    【Python学习日记】B站小甲鱼:继承,super和多重继承
    【Python学习日记】B站小甲鱼:类和对象
    【Python学习日记】B站小甲鱼:图形界面入门easygui
    【Python学习日记】B站小甲鱼:丰富的else语句
    【Python学习日记】B站小甲鱼:永久储存(pickle模块)和异常处理(exception)
  • 原文地址:https://www.cnblogs.com/coldchair/p/12343576.html
Copyright © 2020-2023  润新知