【題目描述】:
給你無向圖的n個點和m條邊,保證這m條邊都不同且不會存在同一點的自環邊,現在問你至少要幾筆才能所有邊都畫一遍。(一筆畫的時候筆不離開紙)
【輸入描述】:
多組資料,每組資料用空行隔開。
對於每組資料,第一行兩個整數n,m表示點數和邊數。接下去m行每行兩個整數a,b ,表示a,b之間有一條邊。
【輸出描述】:
對於每組資料,輸出答案。
【樣例輸入】:
3 31 2
2 31 3
4 21 2
3 4【樣例輸出】:12
【時間限制、資料範圍及描述】:
1<=n<=10^5;0<=m<=2×10^5;1<=a,b<=n
當這個無向連通圖只有乙個點時,這是乙個孤立點,不做操作
當這個無向連通圖是一條尤拉迴路或尤拉路徑時,只需要一筆畫即可,sum++;
當這個無向連通圖有大於2個奇度點,需要用奇度點的個數的二分之一筆畫完,為什麼?因為一筆可以消掉兩個奇度點。由於對稱性的緣故,一條邊的左右兩端點度數分別加一,倘若原來兩點都是奇度點,則兩端點都會變成偶度點,反之亦然,倘若兩端點度數的奇偶性不同,一者為奇一者為偶,與這兩點對應的點一定有奇數個奇度點,所以乙個無向連通圖中不可能存在奇數個奇度點,所以只需/2即可.
code:
#include#include#include#include#includeusing namespace std;
const int n=200005;
struct nodee[n*2];
int head[n],re[n];
int x,tot;
bool vis[n];
void add_edge(int u,int v)
void dfs(int s) }}
int main()
for(int i=1;i<=n;i++)
} printf("%d\n",ans);
} return 0;
}
藍橋杯之螞蟻感冒問題
長100厘公尺的細長直桿子上有n只螞蟻。它們的頭有的朝左,有的朝右。每只螞蟻都只能沿著桿子向前爬,速度是1厘公尺 秒。當兩隻螞蟻碰面時,它們會同時掉頭往相反的方向爬行。這些螞蟻中,有1只螞蟻感冒了。並且在和其它螞蟻碰面時,會把感冒傳染給碰到的螞蟻。請你計算,當所有螞蟻都爬離5桿子時,有多少只螞蟻患上...
藍橋杯之蘭頓螞蟻
博主最近在刷藍橋杯,以後爭取每做一題都寫一篇解題報告。進入正題,首先看題目 問題描述 蘭頓螞蟻,是於1986年,由克里斯 蘭頓提出來的,屬於細胞自動機的一種。平面上的正方形格仔被填上黑色或白色。在其中一格正方形內有乙隻 螞蟻 螞蟻的頭部朝向為 上下左右其中一方。螞蟻的移動規則十分簡單 若螞蟻在黑格,...
有趣的c語言例題之螞蟻感冒
歷屆試題 螞蟻感冒 時間限制 1.0s 記憶體限制 256.0mb 問題描述 長100厘公尺的細長直桿子上有n只螞蟻。它們的頭有的朝左,有的朝右。每只螞蟻都只能沿著桿子向前爬,速度是1厘公尺 秒。當兩隻螞蟻碰面時,它們會同時掉頭往相反的方向爬行。這些螞蟻中,有1只螞蟻感冒了。並且在和其它螞蟻碰面時,...