因为是无向图,所以从1到2再到3等于从2到1和3。用拆点来限制流量(i,i+n,1),然后连接(s,2+n,1),(1,t,1),(3,t,1),对于原图中的边连接(x+n,y,1)(y+n,x,1),跑一遍dinic看答案是否为2即可。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
using namespace std;
const int N=1000005,inf=1e9;
int T,n,m,h[N],cnt,s,t,le[N];
struct qwe
{
int ne,to,va;
}e[N];
int read()
{
int r=0,f=1;
char p=getchar();
while(p>'9'||p<'0')
{
if(p=='-')
f=-1;
p=getchar();
}
while(p>='0'&&p<='9')
{
r=r*10+p-48;
p=getchar();
}
return r*f;
}
void add(int u,int v,int w)
{
cnt++;
e[cnt].ne=h[u];
e[cnt].to=v;
e[cnt].va=w;
h[u]=cnt;
}
void ins(int u,int v,int w)
{//cout<<u<<" "<<v<<endl;
add(u,v,w);
add(v,u,0);
}
bool bfs()
{
memset(le,0,sizeof(le));
queue<int>q;
le[s]=1;
q.push(s);
while(!q.empty())
{
int u=q.front();
q.pop();
for(int i=h[u];i;i=e[i].ne)
if(!le[e[i].to]&&e[i].va>0)
{
le[e[i].to]=le[u]+1;
q.push(e[i].to);
}
}
return le[t];
}
int dfs(int u,int f)
{
if(u==t||!f)
return f;
int us=0;
for(int i=h[u];i&&us<f;i=e[i].ne)
if(le[e[i].to]==le[u]+1&&e[i].va>0)
{
int t=dfs(e[i].to,min(e[i].va,f-us));
e[i].va-=t;
e[i^1].va+=t;
us+=t;
}
return us;
}
int dinic()
{
int re=0;
while(bfs())
re+=dfs(s,inf);
return re;
}
int main()
{
T=read();
while(T--)
{
n=read(),m=read();
memset(h,0,sizeof(h));
s=0,t=2*n+1;cnt=1;
ins(s,2+n,2);
ins(1,t,1);
ins(3,t,1);
for(int i=4;i<=n;i++)
ins(i,i+n,1);
for(int i=1;i<=m;i++)
{
int x=read(),y=read();
if(x<=0||y<=0||x>n||y>n)
continue;
ins(x+n,y,1);
ins(y+n,x,1);
}
/*
ins(s,2,2);
ins(1+n,t,1);
ins(3+n,t,1);
for(int i=4;i<=n;i++)
ins(i+n,i,1);
for(int i=1;i<=m;i++)
{
int x=read(),y=read();
if(x<=0||y<=0||x>n||y>n)
continue;
ins(x,y+n,1);
ins(y,x+n,1);
}
*/
if(dinic()==2)
puts("YES");
else
puts("NO");
}
return 0;
}

最新文章

  1. 【BZOJ1623】 [Usaco2008 Open]Cow Cars 奶牛飞车 贪心
  2. FMDB第三方框架
  3. R 语言编码风格指南
  4. Android double输出时保留两位小数
  5. 可复用的js效果
  6. linux安装时出现your cpu does not support long mode的解决方法
  7. Oracle基础 exp/imp和expdp/impdp的区别:
  8. Jquery 根据value值设置下拉列表(select)默认选中项
  9. 使用C++的开源序列化(Serialization)库cereal
  10. CCNA实验(8) -- PPP &amp; HDLC
  11. hdu 逆袭指数
  12. jquery 直接调用 wcf,面向服务的SOA架构 ( 第二天)
  13. Java:类类型变量
  14. oracle之 SYSAUX表空间维护
  15. 20175320 2018-2019-2 《Java程序设计》第8周学习总结
  16. 复制数据库的Shell命令
  17. Python线程和协程-day10
  18. python使用requests发送text/xml报文数据
  19. Python 模块 和 包
  20. 通过端口 1433 连接到主机 localhost 的 TCP/IP 连接失败。错误:“Connection refused: connect。

热门文章

  1. windows下的asp.net core开发及docker下的发布
  2. 各种ORM框架对比(理论篇,欢迎来观摩,并且纠正部分错误,防止误区)
  3. HUD——1083 Courses
  4. [Poj2411]Mondriaan&#39;s Dream(状压dp)(插头dp)
  5. CORS:Source.priciple implimentation in Spring
  6. http://www.doframe.com/jetoolweb/index.html
  7. Arcgis栅格时序地图制作---时间轴动态展示多期影像
  8. Java处理XSS漏洞的工具类代码
  9. [正在学习开发板]分享--- iTOP-4412移植CAN
  10. O2O助汪峰成功逆袭,汪峰最终上头条了