SGU 326 Perspective

题目地址:  http://acm.sgu.ru/problem.php?contest=0&problem=326

 

很好的网络流题目

 

题目意思:告诉你同分区每支球队的当前得分和剩余比赛场数,以及各支球队之间剩余的比赛场数,然你判断本队(编号为1)是否可能获得头名(允许分数并列)

 

先简单贪心一下,假设本队剩余的场数都赢,同分区其他球队与别的分区的球队间的比赛都输掉

 

这样,第一支队伍就不用考虑了

 

然后计算其余每支队伍最多能赢的比赛数记录在score[i]中,添加源点和汇点,源点向第i支队伍添加容量为score[i]的边

 

对于每场i和j之间的比赛,节点i和j向该比赛节点各连一条容量为比赛场数map[i][j]的边,该比赛节点向汇点连一条容量也为map[i][j]的边

 

如果满流,就可能夺冠,当然,做最大流前,可以判断是否有队伍当前得分已经比本队的最高可能得分高,或者是否每支队伍的最高可能得分都比本队的最高可能得分低

 

如果满流的话,说明每场比赛的胜利都被分配给其中一支队伍了,而源点向每支队伍的边上的容量又限制了该队得分不可能比本队的最高可能得分高,而如果某条边不满流的话,说明有若干场比赛的胜利没有被分配,且参与这场比赛的两支队伍已经达到分数上限,没有可行流流到该场比赛去分配胜利,再分配任何一场比赛的胜利到这两支球队中都会使他们的分数高于本队的最高可能得分

 

代码:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值