大连现场赛A题,匹配并查集
2016-10-27 17:53
141 查看
#include<iostream>//考察并差集的一道非常好的题目。 #include<cstdio> #include<cstring> #include<algorithm> using namespace std; int n,m,x,y; int xi[1005],yi[1005]; int par[1005],val[1005],map[1005],s[1005]; bool flag; void init() { int i; flag=true; for(i=1;i<=n;i++) { par[i]=i; val[i]=0; map[i]=0; s[i]=-1; } } int find(int num,int &rel) { if(par[num]==num) { rel=0; return num; } int fa,relt; fa=find(par[num],relt); val[num]=val[num] ^relt; par[num]=fa; rel=val[num]; return fa; } int update(int px,int py) { int xx,yy,valx,valy,rel; xx=find(px,valx); yy=find(py,valy); rel=valx^valy; if((xx==yy)&&(!rel)) return false; if(xx!=yy) { par[xx]=yy; val[xx]=rel^1; } return true; } int sett(int a) { int fa,rela; fa=find(a,rela); if(s[fa]>=0&&s[a]>=0) return(s[fa]^s[a])==rela; else if(s[fa]==-1) s[fa]=s[a]^rela; return true; } int main() { int i,px,py; while(scanf("%d%d%d%d",&n,&m,&x,&y)!=EOF) { init(); for(i=0;i<m;i++) { scanf("%d%d",&px,&py); if(flag) { map[px]=map[py]=1; flag=flag&&update(px,py); } } for(i=0;i<x;i++) { scanf("%d",&px); if(s[px]==0)flag=false; s[px]=1; if(flag) flag=flag&&sett(px); } for(i=0;i<y;i++) { scanf("%d",&py); if(s[py]==1)flag=false; s[py]=0; if(flag) flag=flag&&sett(py); } for(i=1;(i<=n)&&flag;i++) flag=flag&&(s[i]!=-1||map[i]!=0); if(flag) printf("YES\n"); else printf("NO\n"); } return 0; }
相关文章推荐
- hdu 5972 Regular Number (bitset优化匹配) 2016大连现场赛
- 套题总结:2011大连现场赛
- 大连现场赛
- 总结_六天专题:栈和队列,树,并查集,KMP匹配算法
- Hexadecimal View (2011ACM亚洲大连赛区现场赛D题)
- bzoj1854 游戏 最大匹配/并查集
- zoj 3659 第37届ACM/ICPC 长春赛区现场赛E题 (并查集)
- ZOJ 3542 2011大连现场赛D题(简单模拟)
- 第一次参加acm-icpc现场赛(2016大连赛区)总结
- ZOJ3659,2012长春现场赛E题,并查集
- ZOJ 3659 Conquer a New Region 第37届ACM/ICPC 长春赛区现场赛E题 (并查集)
- HDU - 5980 Find Small A (ICPC2016 大连现场,一点简单的数学小结论)
- HDU 3081 Marriage Match Il【并查集 + 二分匹配】
- HDU - 5974 A Simple Math Problem(ICPC2016 大连现场,简单的数学推理)
- 2016acmicpc现场赛大连赛区D题
- zju 3542 Hexadecimal View (大连现场赛水题)
- HDU3081-并查集+最大二分匹配
- Detachment (Hdu5976)2016大连现场赛F题
- ZOJ 3547 The Boss on Mars 2011大连现场赛I题 数论
- 2011 ACM/ICPC 大连赛区现场赛题解:Compress the String