fzu 2112 Tickets 图论

做法:欧拉路中要么每个点的度数都是偶数,要么,只有两个度数为奇数的点。

#include <iostream>
#include <cstring>
#include <cstdio>
const int LMT=100003;
using namespace std;
int du[LMT];
int main()
{
    int T,n,m;
    scanf("%d",&T);
    while(T--)
    {
        memset(du,0,sizeof(du));
        int u,v,ans=0;
        scanf("%d%d",&n,&m);
        while(m--)
        {
            scanf("%d%d",&u,&v);
            du[u]++;du[v]++;
        }
        for(int i=1;i<=n;i++)
        ans+=du[i]%2;
        ans=(ans-2)>>1;
        if(ans<0)ans=0;
        printf("%d\n",ans);
    }
    return 0;


你可能感兴趣的:(fzu 2112 Tickets 图论)