http://hzwer.com/1986.html

#include<cstdio>
#include<algorithm>
#include<queue>
#include<cstring>
using namespace std;
#define INF 2147483647
#define N 51
int n,m;
char a[N][N];
queue<int>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;
}

【二分答案】【最大流】bzoj1305 [CQOI2009]dance跳舞的更多相关文章

  1. bzoj1305: [CQOI2009]dance跳舞(二分答案+网络流)

    1305: [CQOI2009]dance跳舞 题目:传送门 题解: 一眼网络流基础建模...然后就GG了 二分答案+拆点建边+最大流判断: 把男女生拆为男1,男2,女1,女2 1.男1和男2还有女1 ...

  2. bzoj千题计划130:bzoj1305: [CQOI2009]dance跳舞

    http://www.lydsy.com/JudgeOnline/problem.php?id=1305 每个人拆为喜欢(yes)和不喜欢(no)两个点 二分答案 1.每两个人之间只能跳一次 喜欢则 ...

  3. BZOJ1305 [CQOI2009]dance跳舞 【网络流】

    1305: [CQOI2009]dance跳舞 Time Limit: 5 Sec  Memory Limit: 162 MB Submit: 3714  Solved: 1572 [Submit][ ...

  4. Bzoj1305 [CQOI2009]dance跳舞

    Time Limit: 5 Sec  Memory Limit: 162 MBSubmit: 2925  Solved: 1221 Description 一次舞会有n个男孩和n个女孩.每首曲子开始时 ...

  5. 并不对劲的bzoj1305: [CQOI2009]dance跳舞

    传送门-> 又是陈年老坑. 听上去不知道从何下[手]?那要是把题目换成“判断这些人能否条x支舞”呢? 这样就变成了一个网络流可以解决的问题,只要把每个人拆成喜欢和不喜欢两点,每个人两点总流量不超 ...

  6. BZOJ 1305: [CQOI2009]dance跳舞 二分+最大流

    1305: [CQOI2009]dance跳舞 Description 一次舞会有n个男孩和n个女孩.每首曲子开始时,所有男孩和女孩恰好配成n对跳交谊舞.每个男孩都不会和同一个女孩跳两首(或更多)舞曲 ...

  7. [CQOI2009]dance跳舞(最大流+二分)

    [CQOI2009]dance跳舞 每个人拆成$2$个点,表示是否与喜欢的人跳舞 跳$m$首舞曲时,满足最大流为$n*m$ 二分$m$,跑最大流即可 #include<cstdio> #i ...

  8. BZOJ 1305: [CQOI2009]dance跳舞( 最大流 )

    云神代码很短...0 ms过的...看了代码 , 大概是贪心... orz 我不会证 数据这么小乱搞就可以了吧... ←_← 这道题网络流还是可以写的... 既然限制了最多只能和 k 个不喜欢的人da ...

  9. AC日记——[CQOI2009]DANCE跳舞 洛谷 P3153

    [CQOI2009]DANCE跳舞 思路: 二分+最大流: 代码: #include <cstdio> #include <cstring> #include <iost ...

随机推荐

  1. 如何最快地实现 ALTER TABLE

    如果您不了解ALTER TABLE的语法,可以先参考: http://dev.mysql.com/doc/refman/5.1/en/alter-table.html 使用ALTER TABLE 可以 ...

  2. HDU1828 Picture 线段树+扫描线模板题

    Picture Time Limit: 6000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Sub ...

  3. centos7上安装docker-ce社区版

    报错:Error: docker-ce-selinux conflicts with 2:container-selinux-2.12-2.gite7096ce.el7.noarch 转载:http: ...

  4. WebForm 在 Global.asax 中捕获全局异常

    /// <summary> /// 捕获全局异常 /// </summary> /// <param name="sender">sender& ...

  5. javascript错误处理(转)

    1.onerror事件处理函数onerror事件处理函数是第一个用来协助javascript处理错误的机制.页面上出现异常时,error事件便在window对象上触发.例如: <html> ...

  6. uoj198【CTSC2016】时空旅行

    传送门:http://uoj.ac/problem/198 [题解] 首先y.z是没有用的.. 然后式子就是w = (x0-xi)^2+ci的最小值,化出来可以变成一个直线的形式. 然后我们可以用线段 ...

  7. [BZOJ1010][HNOI2008]玩具装箱toy 解题报告

    Description P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京.他使用自己的压缩器进行压缩,其可以将任意物品变成一堆,再放到一种特殊的一维容器中.P教授有编号为1... ...

  8. 01-导航实例-QQ空间Demo示例程序源代码

    01-导航实例-QQ空间.zip62.4 KB // MJLoginViewController.h Map // //  MJLoginViewController.h //  01-导航实例-QQ ...

  9. Linux XZ格式的解压

    xz这个压缩可能很多都很陌生,不过您可知道xz是绝大数linux默认就带的一个压缩工具. 之前xz使用一直很少,所以几乎没有什么提起. 我是在下载phpmyadmin的时候看到这种压缩格式的,phpm ...

  10. UVA 10668 Expanding Rods

    Problem A: Expanding Rods When a thin rod of length L is heated n degrees, it expands to a new lengt ...