博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
cogs 329 K-联赛 最大流
阅读量:6898 次
发布时间:2019-06-27

本文共 1781 字,大约阅读时间需要 5 分钟。

题解:
假设现在想知道第i支球队能否赢得胜利,首先肯定是让i剩下的比赛都打赢。如果这样赢的次数都比另一支球队j目前赢的次数少,i肯定赢不了,否则就可以知道j最多还能赢几局,也就是j连向T的流量上界。然后把除了i参与之外的所有比赛当作一个节点k,由S向k连一条容量为1的边,再从节点k连向对应的两只队伍即可。跑完最大流如果所有比赛都满流证明i可以取得冠军,否则不能。
双倍经验
code

#include
#include
#include
using namespace std;#define fcl fclose(stdin); fclose(stdout); return 0int n,ans;int w[30],d[30];int A[30][30];struct EDGE{ int to,next,cap,flow;}edge[8000];#define ty (edge[x].to)const int INF=0x3f3f3f3f;int head[2000],tot=1;void Init(){ memset(head,0,sizeof(head)); tot=1;}inline void AddEdge(int a,int b,int c){ edge[++tot].to=b; edge[tot].cap=c; edge[tot].flow=0; edge[tot].next=head[a]; head[a]=tot;}inline void Add(int a,int b,int c){ AddEdge(a,b,c); AddEdge(b,a,0);}int dis[2000],Q[2000],S,T;bool Bfs(){ memset(dis,0x3f,(T+1)<<2); int s=1,t=0; Q[++t]=S; dis[S]=0; while(s<=t){ int u=Q[s++]; for(int x=head[u];x;x=edge[x].next){ if(edge[x].cap>edge[x].flow&&dis[ty]==INF){ dis[ty]=dis[u]+1; Q[++t]=ty; } } } return dis[T]!=INF;}int cur[2000];int Dfs(int u,int a){ if(a==0||u==T) return a; int f2=0,f; for(int& x=cur[u];x;x=edge[x].next){ if(edge[x].cap>edge[x].flow&&dis[ty]==dis[u]+1){ f=Dfs(ty,min(a,edge[x].cap-edge[x].flow)); edge[x].flow+=f; edge[x^1].flow-=f; f2+=f; a-=f; if(a==0) break; } } return f2;}int MaxFlow(){ int res=0; while(Bfs()){ memcpy(cur,head,(T+1)<<2); res+=Dfs(S,INF); } return res;}bool Judge(int a){ int x=w[a]; for(int i=1;i<=n;++i) x+=A[a][i]; for(int i=1;i<=n;++i){ if(i==a) continue; if(x

转载于:https://www.cnblogs.com/kito/p/7135630.html

你可能感兴趣的文章
《TCP/IP详解1》笔记(第1章 概述)
查看>>
Dubbo项目实战 (二) 注册中心zookeeper-3.4.6集群以及高可用
查看>>
COGS 862. 二进制数01串【dp+经典二分+字符串】
查看>>
eclipse中tomcat端口被占用如何解决
查看>>
s31 zabbix监控企业级监控
查看>>
Web 研发模式演变
查看>>
50个提升PHP性能的方法
查看>>
架构师速成6.6-知识的收集整理学习 分类: 架构师速成 ...
查看>>
海报:Silverlight 1.1
查看>>
为阿里云ECS(Windows 2012)创建IPv6隧道地址
查看>>
StackTrace
查看>>
数组操作的几种小方法
查看>>
第一课《.net之--泛型》
查看>>
Linux账号管理
查看>>
通过CImageList加载图标 报错
查看>>
古老的CSS同高列问题
查看>>
纯小白入手 vue3.0 CLI - 3.2 - 路由的初级使用
查看>>
注解 @EnableFeignClients 工作原理
查看>>
项目完工后,常用技术点小结
查看>>
安卓开发笔记——探索EventBus(转)
查看>>