题解 P1636 【Einstein学画画】
如果大家有 被一笔画折磨过的经历 学过一笔画,那么这道题就不难了
如果没学过一笔画,请仔细地看我所写的话(反正也看不懂)
先统计每个点引出的线段有几个是奇数(储存在sum)
如果sum为0 就输出1
反之输出ceil(sum/2.0)
献上代码:
#include <bits/stdc++.h>
using namespace std;
int m,n,line[1001],x,y,sum;
int main()
{
cin>>n>>m;//输入,不用说
for (int i=1;i<=m;i++)//统计每个点引出几条线
{
cin>>x>>y;
line[x]++;
line[y]++;
}
for (int i=1;i<=n;i++)
if (line[i]%2==1)//如果是奇数就统计入sum
sum++;
switch (sum)
{
case 0:cout<<1;break;//如果sum为0 就输出1
default:cout<<ceil(sum/2.0);break;//反之输出ceil(sum/2.0) ###注意### 要除以2.0不是2
}
return 0;//是不是觉得很简单???
}