pku3680 网络流

来源:互联网 发布:mac怎么取消开机启动 编辑:程序博客网 时间:2024/04/30 00:37

额,最近几天没怎么写程序,关键数学初赛考萎了,以后要多做数学了。

这道题我叫了N遍,最后发现是由于他多组数据,l没有初始化。。。。

题目大意:

  一个数轴上,有n条线段,每条的线段有a[i],b[i],w[i]表示起点终点和权值。让你选若干条线段让这些线段的和最大。数轴的某一段区间可以被重复选k次。

简略题解:

  首先膜拜cai0715,看了他的构图方法才做出来的。

  先离散化,就是先把所有线段的端点排序,然后再把原来的a[i],b[i]缩小成p,q,然后,增加源汇s,t,s=0 t=r+1(总区间长度+1)。然后对于数轴,i向i+1连边,费用0流量k。对于每条线段,从p向q连边,费用为-c[i],流量为1。

  然后就是最小费用最大流了,最后ans取反就可以了。

附程序:

原创粉丝点击