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. 1040: [ZJOI2008]骑士~基环外向树dp

    Z国的骑士团是一个很有势力的组织,帮会中汇聚了来自各地的精英.他们劫富济贫,惩恶扬善,受到社会各界的赞扬.最近发生了一件可怕的事情,邪恶的Y国发动了一场针对Z国的侵略战争.战火绵延五百里,在和平环境中 ...

  2. Kafka自我学习-报错篇

    1. kafka启动出现:Unsupported major.minor version 52.0 错误,  具体的错误输出: Exception in thread "main" ...

  3. MVC 自定义HtmlHelper帮助类型之分页

    方法一: 在项目中增加App_Code文件夹,新增一个MyHtmlper.cshtml视图文件 写入代码: @helper Pagger(int pageIndex, int pageCount) { ...

  4. 【Atcoder】ARC082 E - ConvexScore

    [算法]计算几何 [题意]给定平面直角坐标系上的若干个点,任意选点连成凸多边形,凸多边形的价值定义为2^(n-|S|),其中n为凸多边形内部点数(含边界),|S|为顶点数,求总价值.n<=10^ ...

  5. [bzoj3990][SDOI2015]排序-搜索

    Brief Description 小A有一个1-2^N的排列A[1..2^N],他希望将A数组从小到大排序,小A可以执行的操作有N种,每种操作最多可以执行一次,对于所有的i(1<=i<= ...

  6. thinkphp 导入微信小程序加密解密库

    第三方类库 第三方类库指除了 ThinkPHP 框架.应用项目类库之外的其他类库,一般由第三方系统或产品提供,如 Smarty.Zend 等系统的类库等. 前面使用自动加载或 import 方法导入的 ...

  7. VC6.0显示行号的插件

    VC6.0显示行号的插件,很好很强大的显行号插件,使用VC编程的朋友再也不用烦恼VC6.0没有行号的编程环境了. VC显示行号插件使用说明:1. 如果你的VC安装在C盘,请拷贝文件VC6LineNum ...

  8. 时间模块(time/date)

    在Python中,常用的表示方式的时间有:时间戳,字符串时间,元组时间(既年,月,日,时,分,秒,周几,一年中的第几天,时区)     time模块:   time.timezone: 获取当前标准时 ...

  9. Django-models,继承AbstractUser类

    1.UserInfo类继承了Django模型自带的User类,需要导入AbstractUser   2.然后在settings.py中配置

  10. HDU1018 (斯特林公式)

    Big Number Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total ...