HDU 3018 一笔画问题
来源:互联网 发布:艾克里里淘宝店链接 编辑:程序博客网 时间:2024/04/27 00:41
题意:给你一个图 判断最少用几笔把这个图画出来(画过的边不能重新画)
思路:
并查集+欧拉回路
仔细想一想。 在一个强连通分量中 所有度为奇数的点之和÷2就是要画的笔画数
Now question :如果这是个欧拉回路怎么办?
+1就OK啦
答案就是奇度数的点÷2+欧拉回路的个数
// by SiriusRen#include <cstdio>#include <cstring>#define N 100500using namespace std;int ans,n,m,V[N],f[N],VIS[N];int find(int x){return x==f[x]?x:f[x]=find(f[x]);}int main(){ while(~scanf("%d%d",&n,&m)){ ans=0; for(int i=1;i<=n;i++)f[i]=i; memset(V,0,sizeof(V)); memset(VIS,0,sizeof(VIS)); for(int i=1;i<=m;i++){ register int xx,yy; scanf("%d%d",&xx,&yy); V[yy]++;V[xx]++; f[find(xx)]=find(yy); } for(int i=1;i<=n;i++) if(V[i]&1)ans++,VIS[find(i)]=1; for(int i=1;i<=n;i++) if(!VIS[find(i)]&&i!=find(i))ans+=2,VIS[find(i)]=1; printf("%d\n",ans/2); }}
0 0
- hdu 3018 一笔画问题
- HDU 3018 一笔画问题
- 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 欧拉回路 一笔画问题
- HDU-3018几笔画问题
- HDU 3018 Ant Trip(欧拉回路 欧拉通路,一笔画问题)
- hdu ——3018——Ant Trip(一笔画问题)
- hdu 3018Ant Trip(一笔画问题,用并查集就无向图的连通分量)
- 一笔画问题
- 一笔画问题
- 一笔画问题
- nyoj_42 一笔画问题
- 一些关于API层面的优化的VR渲染优化方法
- 268. Missing Number
- Centos环境下Redis的安装
- 零(DFS)
- 判断日期
- HDU 3018 一笔画问题
- IOS Dev Intro - Block
- android中的字符长度
- 【2012.03.3普及组】寻找星座
- 提高项目31.2-将代码中的花括号换行输出
- java面向对象
- hibernate -- HQL语句总结
- ActiveMQ学习(三)--结合Spring的Demo
- 另一种阶乘问题