洛谷P1636学画画
这个题我们需要一个大胆的想法(虽然AC后看了题解知道这是个定理)
(求证明qwq)
如果一个图有2或0个奇点,它就一定可以一笔画出,如果不是2或0个奇点,那答案就是奇点数/2
(私认为因为两个奇点确定一条边,所以答案是奇点数/2)
代码就出来了:
#include<iostream> #include<cstdio> #include<cmath> #include<cstring> using namespace std; int n,m,bian[10001][10001],x,y,js[1001]; int main() { int jjs=0; scanf("%d%d",&n,&m); for(int i=1;i<=m;i++) {scanf("%d%d",&x,&y); bian[x][y]=1; bian[y][x]=1; js[x]++; js[y]++; } for(int i=1;i<=n;i++) {if(js[i]%2==1)jjs++; //printf("js[%d]=%d\n",i,js[i]); } if(jjs==2||jjs==0) {printf("1\n");return 0; } int ans=jjs/2; printf("%d",ans); }