洛谷P1636 Einstein學畫畫(圖論)
阿新 • • 發佈:2021-10-22
題目描述
Einstein 學起了畫畫。
此人比較懶~~,他希望用最少的筆畫畫出一張畫……
給定一個無向圖,包含n個頂點(編號1 \sim n),m條邊,求最少用多少筆可以畫出圖中所有的邊。
輸入格式
第一行兩個整數n, m。
接下來m行,每行兩個數a, b(a \ne b),表示a, b兩點之間有一條邊相連。
一條邊不會被描述多次。
輸出格式
一個數,即問題的答案。
輸入輸出樣例
輸入 #15 5
2 3
2 4
2 5
3 4
4 5
輸出 #1
1
說明/提示
對於 %的資料,。
對於 的資料,
#include <iostream> using namespace std; const int MAXN = 1001; bool map[MAXN][MAXN]; int tmp1, tmp2, n, m; int main(){ // 讀入資料,轉化為臨接矩陣 cin >> n >> m; for(int i=1; i<=m; i++){ cin >> tmp1 >> tmp2; map[tmp1][tmp2] = true; map[tmp2][tmp1] = true; } unsigned long long ans = 0; for(int i=1; i<=n; i++){ unsigned int cnt = 0; for(int j=1; j<=n; j++) if(map[i][j]) cnt++; if(cnt & 1) ans++; } if(ans == 0) cout << 1 << endl; else cout << ans / 2 << endl; return 0; }