最大获利
题目来源:NOI2006
【问题描述】
新的技术正冲击着手机通讯市场,对于各大运营商来说,这既是机遇,更是挑战。THU 集团旗下的CS&T 通讯公司在新一代通讯技术血战的前夜,需要做太多的准备工作,仅就站址选择一项,就需要完成前期市场研究、站址勘测、最优化等项目。
在前期市场调查和站址勘测之后,公司得到了一共N 个可以作为通讯信号中转站的地址,而由于这些地址的地理位置差异,在不同的地方建造通讯中转站需要投入的成本也是不一样的,所幸在前期调查之后这些都是已知数据:建立第i个通讯中转站需要的成本为Pi(1≤i≤N)。
另外公司调查得出了所有期望中的用户群,一共M 个。关于第i 个用户群的信息概括为Ai, Bi 和Ci:这些用户会使用中转站Ai 和中转站Bi 进行通讯,公司可以获益Ci。(1≤i≤M, 1≤Ai, Bi≤N)
THU 集团的CS&T 公司可以有选择的建立一些中转站(投入成本),为一些用户提供服务并获得收益(获益之和)。那么如何选择最终建立的中转站才能让公司的净获利最大呢?(净获利 = 获益之和 – 投入成本之和)
【输入格式】
输入文件中第一行有两个正整数N 和M 。
第二行中有N 个整数描述每一个通讯中转站的建立成本,依次为P1, P2, …,PN 。
以下M 行,第(i + 2)行的三个数Ai, Bi 和Ci 描述第i 个用户群的信息。
所有变量的含义可以参见题目描述。
【输出格式】
你的程序只要向输出文件输出一个整数,表示公司可以得到的最大净获利。
【输入样例】
5 5
1 2 3 4 5
1 2 3
2 3 4
1 3 3
1 4 2
4 5 3
【输出样例】
4
网络流模型如下:
所有用户对应结点xi,所有服务站对应结点yi,原点到所有用户连接一个边,权值为从该用户得到的获利。所有服务站到汇点连接一个边,权值为建造成本。
所有用户向个子需要的2个服务站连接一条边,权值无穷大。
对于这个图,首先证明原点到汇点的一个不包含无穷大的边的割与一个合法的情况一一对应。
首先,选择用户几何的任意子集X,在服务站几何中选择子集Y,使得任意X中的元素xi,其对应的2个服务站都属于Y。
任意满足条件的这两个集合构成一种合法情况
在图中去除任意一个割(不包含无穷大的边),此时原点汇点间不存在增广路。所有剩下与原点相连的用户结点构成用户集合X;所有不与汇点连接的服务站表示服务站集合Y。
假设存在 X中的某元素xi,其对应的服务站ya,yb,ya或yb不在Y中,那么根据集合X和Y的定义,原点到xi有边相连,ya(ya或yb,此假设ya)到汇点也有边相连。由于假设割不包含无穷大的边,那么图中存在增光路S->xi->ya->T,S为原点,T为汇点,与假设矛盾。
所以,对于X中任意元素,都能在Y中找到其对应的两个服务站结点,这与一个合法情况对应。
反过来,一个合法的情况可以得到一个确定的该图的割,证法相似。
所以,图的割和合法的情况是一一对应的
再来分析割的值的含义:
初始状态所有边都在,对应的情况是所有用户都选上,所有的服务站都不造。收益等于所有从用户得到的收益和。但这是一个不合法的情况。去掉某些边以后,去掉的原点到用户的边对应损失的收益,去掉的服务站到汇点的边对应建造的费用,此时的收益等于去 边之前的收益 - 损失的收益 - 建造费用。要想得到合法的情况必须去掉一个割。要是得收益最大化,那么 损失的收益 + 建造费用 必须最小化,即最小割。
还有最后一点,由于最小割不包含无穷大的边,所以最小割对应的情况一定合法