hdu 3018 欧拉回路
2017-02-28 17:22
211 查看
#include<iostream> #include<vector> using namespace std; const int maxn=1e5+5; int fa[maxn],num[maxn],odd[maxn],du[maxn],n,m,u,v,res; void init() { fill(num+1,num+n+1,0); fill(odd+1,odd+n+1,0); fill(du+1,du+n+1,0); res=0; for(int i=1;i<=n;i++) fa[i]=i; } int find(int point) { if(fa[point]==point) return point; return fa[point]=find(fa[point]); } int main() { while(scanf("%d%d",&n,&m)!=EOF) { init(); while(m--&&scanf("%d%d",&u,&v)!=EOF) { int fau=find(u),fav=find(v); du[v]++; du[u]++; if(fau!=fav) fa[fau]=fav; } for(int i=1;i<=n;i++) { int fai=find(i); num[fai]++; if(du[i]&1) odd[fai]++; } for(int i=1;i<=n;i++) { int fai=find(i); //cout<<num[fai]<<endl; if(num[i]<=1) continue; if(odd[fai]) res+=odd[fai]/2; else res++; } printf("%d\n",res); } return 0; }
相关文章推荐
- hdu-3018-Ant Trip(并查集&&欧拉回路)
- HDU 3018 Ant Trip(欧拉回路一笔画问题)
- hdu 3018(欧拉回路)
- hdu 3018 欧拉回路 一笔画问题
- [欧拉回路] hdu 3018 Ant Trip
- [欧拉回路] hdu 3018 Ant Trip
- HDU 3018 欧拉回路+图的性质
- HDU 3018 Ant Trip(欧拉回路)
- HDU 3018 Ant Trip(欧拉回路:一笔画问题)
- HDU 3018 Ant Trip(欧拉回路 欧拉通路,一笔画问题)
- HDU 3018(欧拉回路)
- HDU-3018-欧拉回路
- [欧拉回路] hdu 3018 Ant Trip
- HDU 3018 欧拉回路 笔画数问题
- 欧拉回路 HDU - 3018
- hdu 3018 图 欧拉回路 并查集
- HDU 1878:欧拉回路【并查集】
- 【欧拉图判断】HDU 1878 欧拉回路
- HDU 2894 DeBruijin (欧拉回路)
- hdu 1878 欧拉回路 水题。测试数据貌似有点问题