博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【二分答案】【最大流】bzoj1305 [CQOI2009]dance跳舞
阅读量:6946 次
发布时间:2019-06-27

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

http://hzwer.com/1986.html

#include
#include
#include
#include
using namespace std;#define INF 2147483647#define N 51int n,m;char a[N][N];queue
q;int S,T,nn;int first[(N<<2)+3],next[2*N*(N+5)],v[2*N*(N+5)],cap[2*N*(N+5)],en;int d[(N<<2)+3],cur[(N<<2)+3];void AddEdge(int U,int V,int Cap){ v[en]=V; cap[en]=Cap; next[en]=first[U]; first[U]=en++; v[en]=U; cap[en]=0; next[en]=first[V]; first[V]=en++;}bool bfs(){ memset(d,-1,sizeof(int)*(nn+1)); q.push(S); d[S]=0; while(!q.empty()) { int U=q.front(); q.pop(); for(int i=first[U];i!=-1;i=next[i]) if(d[v[i]]==-1&&cap[i]) { d[v[i]]=d[U]+1; q.push(v[i]); } } return d[T]!=-1;}int dfs(int U,int a){ if(U==T||(!a)) return a; int Flow=0,f; for(int i=first[U];i!=-1;i=next[i]) if(d[v[i]]==d[U]+1&&(f=dfs(v[i],min(a,cap[i])))) { cap[i]-=f; cap[i^1]+=f; Flow+=f; a-=f; if(!a) break; } if(!Flow) d[U]=-1; return Flow;}int MaxFlow(){ int Flow=0,tmp; while(bfs()) { memcpy(cur,first,sizeof(int)*(nn+1)); while(tmp=dfs(S,INF)) Flow+=tmp; } return Flow;}bool check(int Lim){ memset(first,-1,sizeof(int)*(nn+1)); en=0; for(int i=1;i<=n;++i) { AddEdge(S,1+i,Lim); AddEdge(1+(n<<1)+i,T,Lim); AddEdge(1+i,1+n+i,m); AddEdge(1+n*3+i,1+(n<<1)+i,m); } for(int i=1;i<=n;++i) for(int j=1;j<=n;++j) if(a[i][j]=='Y') AddEdge(1+i,1+(n<<1)+j,1); else AddEdge(1+n+i,1+n*3+j,1); return MaxFlow()==n*Lim;}int main(){ scanf("%d%d",&n,&m); for(int i=1;i<=n;++i) scanf("%s",a[i]+1); int l=0,r=50; S=1; T=(n<<2)+2; nn=(n<<2)+2; while(r>l) { int mid=(l+r+1>>1); if(check(mid)) l=mid; else r=mid-1; } printf("%d\n",l); return 0;}

转载于:https://www.cnblogs.com/autsky-jadek/p/4433910.html

你可能感兴趣的文章
linux里shell中的test代表的意义
查看>>
关于Golang语言的web编程的实例及常见问题
查看>>
ORALCE存储之ROWID
查看>>
[php]php设计模式 Composite (组合模式)
查看>>
VBA之四----给程序自动加行号
查看>>
Windows 下 Nginx + PHP5 的安装与配置
查看>>
【技术贴】所有好友的QQ空间都打不开进不去的超简单解决办法!
查看>>
这种写法用过没:string.Format("{0,-10}", 8)
查看>>
有关在SharePoint Server中Infopath表单无法呈现的问题及解决方案
查看>>
HDU-1572 下沙小面的(2) DFS
查看>>
Silverlight3.0正式版(Silverlight3_Tools)离线安装
查看>>
微博营销,究竟该怎么做?(实战系列四:活动篇)
查看>>
Sharepoint学习笔记—Ribbon系列-- 1. Ribbon的架构
查看>>
交换机与路由器的区别
查看>>
对${ZSH_VERSION+set}的验证
查看>>
Struts2和Spring3 MVC的区别说明
查看>>
掌握这些电脑知识,你会玩得很无耻
查看>>
admob 广告增加
查看>>
客户/服务器程序设计范式
查看>>
由一个Xml序列化操作看mscorlib.dll 2.0、4.0 String的Trim方法实现
查看>>