杭電ACM1878——歐拉回路
簡單的歐拉回路,如題。
歐拉回路的判斷:
1.在有向圖中:首先必要的條件是圖連通,所以頂點的入度都等於出度。
2.在無向圖中:首要條件還是圖連通,其次就是所以頂點都是偶數度(該頂點的度為偶數)
這一題是無向圖,所以根據判斷方法來寫,很簡單,判定就不證明了。我是用並查集來判斷圖是否連通的。
下面是AC的程式碼:
#include <iostream> #include <cstring> using namespace std; int par[1005], degree[1005]; int finds(int x) { if(x == par[x]) return x; else return par[x] = finds(par[x]); } int main() { int a, b, n, m, i; while(cin >> n) { if(n == 0) break; for(i = 0; i <= n; i++) par[i] = i; memset(degree, 0, sizeof(degree)); cin >> m; for(i = 0; i < m; i++) { cin >> a >> b; degree[a]++; //該點度+1 degree[b]++; int x = finds(a); int y = finds(b); if(x != y) //合併 par[x] = y; } int flag = 0, tag = 0; for(i = 1; i <= n; i++) //判是否連通 if(par[i] == i) flag++; if(flag > 1) cout << 0 << endl; else { for(i = 1; i <= n; i++) //判頂點的度是否為偶數 { if(degree[i] % 2) tag++; } if(tag > 0) cout << 0 << endl; else cout << 1 << endl; } } return 0; }
相關推薦
杭電ACM1878——歐拉回路
簡單的歐拉回路,如題。 歐拉回路的判斷: 1.在有向圖中:首先必要的條件是圖連通,所以頂點的入度都等於出度。 2.在無向圖中:首要條件還是圖連通,其次就是所以頂點都是偶數度(該頂點的度為偶數) 這一題是無向圖,所以根據判斷方法來寫,很簡單,判定就不證明了。 我是用並
杭電Problem1878 歐拉回路 並查集 + 歐拉回路
問題地址 歐拉回路 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 11814 Accepted Su
2018杭電多校第二場1003(DFS,歐拉回路)
歐拉路 style ear bits its space nbsp 記錄 一個隊列 #include<bits/stdc++.h>using namespace std;int n,m;int x,y;int num,cnt;int degree[100007]
【杭電】[1878]歐拉回路
判斷是否存在歐拉回路 1.每個點必須有偶數點連線 2.只能有一個根 所以用並查集可以輕鬆完成 #include<stdio.h> int par[1020]; int r[1
【杭電1878】歐拉回路
歐拉回路 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Descr
杭電ACM1116——Play on Words~~尤拉路徑與歐拉回路
這一題,相比之前做的題目,增加了尤拉路徑的求解。而且這一題是有向圖。題目大概的意思就是成語接龍,能接起來就算可以開啟門,因此要考慮兩種,一種是迴路,另外一種是一條路徑。 第一次WR就是因為沒有考慮迴路這一個因素。 有向圖中,歐拉回路與尤拉路徑的求解方法: 1.歐拉回路: 首
歐拉回路
put ++ .cn -1 bool ret 技術分享 代碼 can 思路 根據歐拉圖的概念來。 註意 點數為1; 有孤立點; 代碼實現 T掉的dfs... 1 #include<cstdio> 2 const int max
UVA 10196 Morning Walk(歐拉回路)
ble move eve man first pre intersect sum ons Problem H Morning Walk Time Limit 3 Seconds Kamalis a Motashotaguy. He has
[歐拉回路] poj 1300 Door Man
linker center || 是否 connect sep cto -m vector 題目鏈接: http://poj.org/problem?id=1300 Door Man Time Limit: 1000
hdu1878歐拉回路(DFS+歐拉回路)
out sin 整數 white 偶數 ret pad bottom -m 歐拉回路 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
[模板][持續更新]歐拉回路與歐拉路徑淺析
bits solution 算法 -1 要求 logs 鏈式前向星 namespace src Luogu P2731 騎馬修柵欄 Riding the Fences 題目背景 Farmer John每年有很多柵欄要修理。他總是騎著馬穿過每一個柵欄並修復它破損的地方。 題目
51nod 1967 路徑定向(不錯的歐拉回路)
cnblogs 偶數 ret mes stack ostream lin .html pre http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1967 題意: 思路: 出度=入度,這
The Necklace UVA - 10054 (無向圖的歐拉回路)
n) 兩個 logs nec get dfs lap none view The Necklace UVA - 10054 題意:每個珠子有兩個顏色,給n個珠子,問能不能連成一個項鏈,使得項鏈相鄰的珠子顏色相同。 把顏色看做點,珠子內部連一條邊,無向圖求歐拉回路。 這
算法復習——歐拉回路混合圖(bzoj2095二分+網絡流)
n) truct lin 歐拉圖 所有 mage borde algo stream 題目: Description YYD為了減肥,他來到了瘦海,這是一個巨大的海,海中有n個小島,小島之間有m座橋連接,兩個小島之間不會有兩座橋,並且從一個小島可以到另外任意一個小島。現在
混合圖歐拉回路
所有 ace .cn geo urn 我們 方向 online n) http://acm.pku.edu.cn/JudgeOnline/problem?id=1273 給一組邊 有的是有向邊有的是無向邊 問是否存在歐拉回路 我們知道如果每個點入度等於出度 就存在歐拉回路
hdu 1956 (網絡流解決歐拉回路)
www 起點到終點 更改 什麽 tps 網絡流 個性 http 混合圖 題目連接:https://vjudge.net/problem/HDU-1956 題意:給定一些點和一些邊,有些邊是有向的,,有些邊是無向的,求是否存在歐拉回路。 題解:想不到的網絡流。 混合圖:即
51nod1967 路徑定向(歐拉回路+結論題)
void ++i col () view const stdio.h turn char 看到入度等於出度想到歐拉回路。 我們把邊都變成無向邊,有一個結論是偶數度的點都可以變成出入度相等的點,而奇數點的不行,感性理解分類討論一下就知道是對的。 還有一個更好理
poj1780歐拉回路
href tail poj scanf net str ons for lan 轉載 #include<cstdio> #include<cstring> const int N=1e6+88; bool vis[N]; char an
poj1386有向圖判斷是否存在歐拉回路或者歐拉路
第一個 include 構圖 cannot tdi ear 首字母 字符 else 有向圖的圖聯通是指基圖聯通,也就是把有向圖的邊改成無向圖然後看是否連通。判斷聯通可用dfs或者並查集。 題意就是給你n個由小寫字母構成的字符串,問你能不能將這n個字符
新知識添加·歐拉回路+歐拉路徑
應該 路徑 求解 兩種方法 遍歷 fleury 歐拉路 必要條件 bsp §概念 歐拉通路: 通過圖中每條邊且只通過一次,並且經過每一頂點的通路; 歐拉回路: 通過圖中每條邊且只通過一次,並且經過每一頂點的回路; 歐拉環:圖中經過每條邊一次且僅一次的環; 歐拉路徑:圖中經過