洛谷 P1636 Einstein學畫畫
阿新 • • 發佈:2017-11-18
-s %d 多次 orange std 2個 www. problem turn
P1636 Einstein學畫畫
題目描述
Einstein學起了畫畫,
此人比較懶~~,他希望用最少的筆畫畫出一張畫。。。
給定一個無向圖,包含n 個頂點(編號1~n),m 條邊,求最少用多少筆可以畫出圖中所有的邊
輸入輸出格式
輸入格式:
第一行2個數n,m
以下m行 每行2個數a,b(a<>b) 表示a,b兩點之間有一條邊相連
一條邊不會被描述多次
輸出格式:
一個數 即問題的答案
輸入輸出樣例
輸入樣例#1: 復制5 5
2 3
2 4
2 5
3 4
4 5
輸出樣例#1: 復制1
說明
約定 50%的數據n<=50,m<=100
100%的數據n<=1000,m<=100000
思路:一筆畫問題歐拉通路
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; int n,m,num; int into[1010]; int main(){ scanf("%d%d",&n,&m); for(int i=1;i<=m;i++){int u,v; scanf("%d%d",&u,&v); into[u]++;into[v]++; } for(int i=1;i<=n;i++) if(into[i]%2!=0) num++; if(num==0||num==2){ cout<<"1"; return 0; } else cout<<num/2; }
洛谷 P1636 Einstein學畫畫