题目
LA2531 足球联赛
题目:
有n只队伍打比赛,给出每只队目前获胜和失败的场数,再给出两两队伍接下来的比赛场次,问你哪些队伍可能的冠军 (摘自http://blog.csdn.net/s_h_r/article/details/46427649)
队伍数\(\leq 25\), 场数\(\leq 100\)
嘴巴:
不会做。
题解:
枚举每支战队x,检查是否可能获胜。
先让x剩下的比赛全部获胜,记录场数为tot,限制其他队伍获胜场数全部\(\leq tot\);
往最大流方向思考,让源点流出总的比赛场数,当源点连出的边满流时比完所有比赛;
让每个队伍向汇点连最多可以获胜多少场比赛,限制了方案必须合法。
中间随便连一连。
这就是整体的思路。
具体建图时,对于每场比赛(x, y), 虚拟节点X,由S - > X连比赛常数,X - >x, X- > y连INF,实现任意分配。