einstein學起了畫畫,
此人比較懶~~,他希望用最少的筆畫畫出一張畫。。。
給定乙個無向圖,包含n 個頂點(編號1~n),m 條邊,求最少用多少筆可以畫出圖中所有的邊
輸入格式:
第一行2個數n,m
以下m行 每行2個數a,b(a<>b) 表示a,b兩點之間有一條邊相連
一條邊不會被描述多次
輸出格式:
乙個數 即問題的答案
輸入樣例#1: 複製
5 5輸出樣例#1: 複製2 32 4
2 53 4
4 5
1這題很好的概括了尤拉迴路的性質 以前只知道 奇數度為0或2可以一筆畫
這道題就是乙個簡單的尤拉迴路的模板,統計每個點的度數,如果每個點的度數都為偶數,那麼就可以一筆畫(因為每個點都有進有出),否則統計度數為奇數的點的個數(記為num)答案就是num/2(每次都把度數為奇數的點分別作為起點和終點)。
#includeusingview codenamespace
std;
int n,m,dg[1010],a,b,num=0;//
dg記錄每個點的度數
bool map[1010][1010
];//
用鄰接矩陣儲存圖
long
long read()//
快讀
while(ch>='
0'&&ch<='9'
)
if(last=='
-')ans=-ans;
return
ans;
}void add(int x,int y)//
加入int
main()
for(int i=1;i<=n;i++)
if(dg[i]&1==1)num++;
if(num==0||num==2)cout<
;
else cout<2
;
return0;
}