正解:最大流

解题报告:

传送门$QwQ$

这种一看就很网络流鸭,直接说咋建图趴.

考虑把在校的人拆成人和床.$S$连向所有不回家的人,所有床连向$T$,认识的人之间人向床连边,跑个最大流就成.

$over$

记得每个人要向自己的床连边,,,不然就可以获得$10pts$的好成绩(居然还有$10pts$,,,,$/jk$

#include<bits/stdc++.h>
using namespace std;
#define t(i) edge[i].to
#define w(i) edge[i].wei
#define rp(i,x,y) for(int i=x;i<=y;++i)
#define e(i,x) for(int i=head[x];~i;i=edge[i].nxt)
#define E(i,x) for(int &i=cur[x];~i;i=edge[i].nxt) const int N=+,inf=1e9;
int n,m,S,T,head[N],cur[N],ed_cnt=-,dep[N];
int gd[N],gs[N];
struct ed{int to,nxt,wei;}edge[N<<];
queue<int>Q; void ad(int x,int y,int z){edge[++ed_cnt]=(ed){x,head[y],z};head[y]=ed_cnt;edge[++ed_cnt]=(ed){y,head[x],};head[x]=ed_cnt;}
bool bfs()
{
memset(dep,,sizeof(dep));dep[S]=;Q.push(S);
while(!Q.empty()){int nw=Q.front();Q.pop();e(i,nw)if(w(i) && !dep[t(i)])dep[t(i)]=dep[nw]+,Q.push(t(i));}return dep[T];
}
int dfs(int nw,int fl)
{
if(!(nw^T) || !fl)return fl;;int ret=;
E(i,nw)if(dep[t(i)]==dep[nw]+){int d=dfs(t(i),min(fl,w(i)));w(i)-=d,w(i^)+=d,fl-=d,ret+=d;if(!fl)return ret;}
return ret;
}
int dinic(){int ret=;while(bfs()){rp(i,S,T)cur[i]=head[i];while(int d=dfs(S,inf))ret+=d;}return ret;} int main()
{
int t;scanf("%d",&t);
while(t--)
{
scanf("%d",&n);S=,T=n<<|;memset(head,-,sizeof(head));ed_cnt=-;int cnt=;
rp(i,,n){scanf("%d",&gd[i]);if(gd[i])ad(T,i+n,);else ad(i,S,),++cnt;}rp(i,,n){scanf("%d",&gs[i]);if(gd[i] && !gs[i])ad(i,S,),++cnt;}
rp(i,,n)rp(j,,n){int x;scanf("%d",&x);if(x)ad(j+n,i,),ad(i+n,j,);if(i==j)ad(i+n,i,);}
printf(dinic()==cnt?"^_^\n":"T_T\n");
}
return ;
}

最新文章

  1. Brackets前端开发IDE工具
  2. TestNG官方文档中文版(5)-测试方法/类和组
  3. 20145211 《Java程序设计》实验报告二:Java面向对象程序设计
  4. linux ps命令介绍
  5. DreamFactory service platform 将DB发布成restful service
  6. CentOS7,Firewalld防火墙使用方法
  7. Android string.xml error: Apostrophe not preceded by \
  8. 企业架构研究总结(43)——企业架构与建模之ArchiMate详述(下)
  9. HTML 相同name 传递一个数组
  10. 张高兴的 Windows 10 IoT 开发笔记:使用 ADS1115 读取模拟信号
  11. node使用消息队列RabbitMQ一
  12. 【leetcode】92. Reverse Linked List II
  13. JS进阶之---函数,立即执行函数
  14. C#中Split用法【转】
  15. LeetCode-860. Lemonade Change
  16. oracle listagg和wm_concat函数
  17. ES6 Symbol的应用场景
  18. gulp配置安装使用
  19. 【ASP.NET 框架系列】您所经历的,但未必研究的那些技术
  20. oracle 的分页与 mySQL&#39;的分页转化

热门文章

  1. 设置select和option的文字居中
  2. deepin golang微服务搭建go-micro环境
  3. 在 windows 安装 Jekyll
  4. win10 uwp httpClient 登陆CSDN
  5. 用CSS画平行四边形
  6. vue+file-saver+xlsx导出table表格为excel
  7. 【原生JS】图片预加载之有序预加载
  8. codeforces1217-edu
  9. java操作数组的工具类-Arrays
  10. 通过页码直接跳转 html