SGU 326 Perspective ( 网络流 )

题意:
NBA 某小组内有 N 支球队,小组内以及小组间已经进行了若干场比赛。现在给出这 N 支球队目前胜利的场数、还剩多少场没有比(包括小组内和小组间)以及小组内任意两支球队之间还剩多少场没有比,存在maze[i][j]中, 问能否合理安排剩下的所有比赛,使得球队 1 最后胜利的场数至少和小组内任何一支其他球队一样。(2 <= N <= 20,0 <= x <= 10000, x 表示其他任何输入)

照着大佬的pdf刷题,做完后才发现死活登不上OJ,其他地方也找不到测评,我能怎么办,我也很绝望呀【摊手。
舍不得放弃,就说说思路吧(不做代码坑)

思路:
首先,所有和球队1相关的比赛都让1赢,已经赢得加上还剩下的比赛,一定是最有决策。如果已经此时仍然有球队胜利的场数大于球队1,那不管怎么调整,也不可能满足条件了。那么要使球队1赢,那么其他球队i在剩下的比赛赢场最多为max(球队1最多赢得场数)- w[i](球队i的已胜场数)。
现在可以开始建图了,我们把点分为几类:源点,汇点,球队(除球队1),比赛(除开和1有关的比赛)。 首先,源点向每个球队连一条边,容量为该球队最多胜场,再考虑所有与球队1无关的点,所以对于某次i与j之间比赛(其中i!=1,j!=1),我们让i和j分别与此次比赛连边,容量都为inf,再把此次比赛与汇点连一条边,容量为maze[i][j] (因为这maze[i][j]的贡献只能分给i,j两方,每个人能够得到贡献的总权值又有限定)。最后,sum记录和球队1无关的所有比赛总数,看看跑出的最大流是否等于sum(是否满流)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值