题解 P1636 【Einstein学画画】
Callous_Murder · · 题解
kcm 布置的题。。蒟蒻前来水篇题解/ts
我们都知道,一张图只要有
不难想到,该图若不能一笔画,则需要奇点数
那就可以用邻接表来实现了,读入各无向边,统计奇点个数,然后判断。
看到大佬们都直接用数组存,没存边,用vector 的蒟蒻瑟瑟发抖。
kcm 为啥不教vector呀,vector 大法好啊
Code
#include<cstdio>
#include<vector>
using namespace std;
vector<int> g[1000];
int n,m,x,y,num;
int main()
{
scanf("%d%d",&n,&m);
for(int i=1;i<=m;++i)
{
scanf("%d%d",&x,&y);
g[x].push_back(y);
g[y].push_back(x);//建边
}
for(int i=1;i<=n;++i)
if(g[i].size()%2==1)
++num;//num为奇点数
if(num==2||num==0)
printf("1");//能一笔画
else
printf("%d",num/2);//不能一笔画
return 0;
}
End.