HDU 3018 Ant Trip 欧拉路 并查集
2016-10-09 18:53
330 查看
HDU 3018 Ant Trip 欧拉路 并查集
开始的时候没有看清题 以为是每个联通图判断欧拉路就行了 #include<iostream> #include<cstdio> #include<cstring> #include<string.h> #include<algorithm> #include<vector> using namespace std;//hdu3018 对于联通的图判断奇数度数的个数 如果==0 就+1 就行了 否者 加奇数个数的1/2 #define maxn 100005 #define maxm 200005 int degree[maxn],pa[maxn],flag[maxn]; int n,m,x,y; void init() { memset(degree,0,sizeof(degree)); memset(flag,0,sizeof(flag)); for(int i=1;i<=n;i++) { pa[i]=i; } } int find(int x) { return pa[x] == x ? x : pa[x] = find(pa[x]); } void unite(int x, int y) { x = find(x); y = find(y); if(x == y) return; pa[x] = y; } int main() { while(scanf("%d%d",&n,&m)==2) { init(); int count=0; for(int i=0;i<m;i++) { scanf("%d%d",&x,&y); degree[x]++; degree[y]++; unite(x,y); } for(int i=1;i<=n;i++) { if(degree[i]&1) flag[find(i)]++; } for(int i=1;i<=n;i++) { if(find(i)==i &°ree[i]) { if(flag[i]==0) count++; else count+=flag[i]/2; } } printf("%d\n",count); } }
相关文章推荐
- HDU 3018 Ant Trip【欧拉路、并查集】
- hdu 3018 Ant Trip 【图论-欧拉路】
- HDU 3018 Ant Trip 【欧拉图+并查集】
- HDU 3018 Ant Trip(欧拉路径 + 并查集 + 连通性判断)
- HDU 3018 Ant Trip(连通分量 & 欧拉路)
- HDOJ3018 Ant Trip(欧拉回路 + 并查集)
- hdu 3018 Ant Trip 欧拉回路+并查集
- hdu ——3018——Ant Trip(一笔画问题)
- hdu-3018 Ant Trip(欧拉路径)
- HDU - 3018 Ant Trip(欧拉回路一笔画+并查集)
- HDU 3018 Ant Trip(欧拉回路一笔画问题)
- HDU 3018 Ant Trip ( 并查集+欧拉回路 )
- HDU 3018 Ant Trip(欧拉回路 欧拉通路,一笔画问题)
- hdu 3018 Ant Trip
- Ant Trip HDU - 3018
- [欧拉回路] hdu 3018 Ant Trip
- hdu 3018(欧拉路+并查集)
- hdu-3018-Ant Trip(并查集&&欧拉回路)
- hdu 3018 欧拉路定理+并查集
- HDU 3018 Ant Trip(欧拉回路)