标签:
购物问题 |
难度级别:C; 运行时间限制:1000ms; 运行空间限制:51200KB; 代码长度限制:2000000B |
试题描述
|
由于换季,ACM商场推出优惠活动,以超低价格出售若干种商品。但是,商场为避免过分亏本,规定某些商品不能同时购买,而且每种超低价商品只能买一件。身为顾客的你想获得最大的实惠,也就是争取节省最多的钱。经过仔细研究过,我们发现,商场出售的超低价商品中,不存在以下这种情况:N(3<=n)种商品C1,C2,…,Cn,其中Ci和Ci+1是不能同时购买的(i=1,2,…,n-1),而且C1和Cn也不能同时购买。请编程计算可以节省的最大金额数。
|
输入
|
第1行两个整数K,M(1<=k<=1000),其中K表示超低价商品数,K种商品的编号依次为1,2,…,K;M表示不能同时购买的商品对数。接下来K行,第i行有一个整数Xi表示购买编号为i的商品可以节省的金额(1<=Xi<=100)。再接下来M行,每行两个数A和B,表示A和B不能同时购买,1<=A<=K,1<=B<=K,A≠B。
|
输出
|
仅一个整数,表示能节省的最大金额数。
|
输入示例
|
3 1
1 1 1 1 2 |
输出示例
|
2
|
其他说明
|
ssf校内训练
|
题解:好水的题,赤裸裸的二分图。。。(虽然本意是想考DP吧。。。但我们有高级货啊。。。= =)
二分图补集转换的思想不唠叨了,别忘了最大流建模的时候上两条边最后再除以二。
跟501一样瞎搞就好了= =
同时,这次“惨痛”的教训告诉我们,抄最大流模板的时候记得改addedge,我太傻了...
我还是等会再放代码吧。。。
标签:
原文地址:http://www.cnblogs.com/chxer/p/4542654.html