1. 程式人生 > >洛谷 P1636 Einstein學畫畫

洛谷 P1636 Einstein學畫畫

-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學畫畫