HDU 3018 Ant Trip
2014-10-19 18:55
288 查看
http://acm.hdu.edu.cn/showproblem.php?pid=3018
题意:一笔画问题。问所给的图案最少几笔画完。
分析:如果是个欧拉回路一笔就可以完成,如果是个其它连通集,要根据这个集合的奇度数而定。笔划数=奇度数/2。用并查集来判断有多少个连通集,然后用vector来存这些连通集,通过判断度数奇偶性来确定是否为欧拉回路。总之笔划数
= 奇度数/2 + 欧拉回路数。
■⒉凡是只有两个奇点的连通图(其余都为偶点),一定可以一笔画成。画时必须把一个奇点为起点,另一个奇点为终点。
■⒊其他情况的图都不能一笔画出。(奇点数除以二便可算出此图需几笔画成。)
http://acm.hdu.edu.cn/showproblem.php?pid=3018
题意:一笔画问题。问所给的图案最少几笔画完。
分析:如果是个欧拉回路一笔就可以完成,如果是个其它连通集,要根据这个集合的奇度数而定。笔划数=奇度数/2。用并查集来判断有多少个连通集,然后用vector来存这些连通集,通过判断度数奇偶性来确定是否为欧拉回路。总之笔划数
= 奇度数/2 + 欧拉回路数。
一笔画
■⒈凡是由偶点组成的连通图,一定可以一笔画成。画时可以把任一偶点为起点,最后一定能以这个点为终点画完此图。■⒉凡是只有两个奇点的连通图(其余都为偶点),一定可以一笔画成。画时必须把一个奇点为起点,另一个奇点为终点。
■⒊其他情况的图都不能一笔画出。(奇点数除以二便可算出此图需几笔画成。)
<span style="font-size:12px;">#include <vector> #include <stdio.h> #include <string.h> #include <iostream> #include <algorithm> using namespace std; int n,m,degree[100010]; int father[100010],odd[100010],vis[100010]; vector <int> v; void init(){ v.clear(); for(int i=1; i<=n; i++){ father[i] = i;///并查集的初始化 degree[i] = 0; odd[i] = 0; vis[i] = 0; } } int find(int x){///并查集的查找 while(x != father[x]) x = father[x]; return x; } int main(){ // freopen("in.txt", "r", stdin); while(scanf("%d%d",&n,&m) == 2){ init(); int a,b; for(int i=0; i<m; i++){ scanf("%d%d",&a,&b); int fa = find(a),fb = find(b); degree[a]++,degree[b]++; father[fb] = fa;///并查集的合并 } for(int i=1; i<=n; i++){ int f = find(i); if(!vis[f]){ v.push_back(f); vis[f] = 1; } if(degree[i] % 2) odd[f]++; } int sum = 0; for(int i=0; i<v.size(); i++){ int k = v[i]; if(!degree[k]) continue; if(!odd[k]) sum++; else sum += odd[k]/2; } printf("%d\n",sum); } return 0; } </span>
相关文章推荐
- 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
- hdu 3018 Ant Trip
- HDU 3018 Ant Trip
- hdu acm 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 图 欧拉回路 并查集
- HDU 3018 一笔画问题
- HDU 3018 Ant Trip(欧拉路径 + 并查集 + 连通性判断)