现在的位置: 首页 > 综合 > 正文

uva 10596 – Morning Walk

2013年08月02日 ⁄ 综合 ⁄ 共 648字 ⁄ 字号 评论关闭

    欧拉回路题目;又粗心了  ,大写的P!!!!!!!!!!!!

   另外这个题数组g开到10000*100000会TLE

#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<iostream>
using namespace std;
int g[210][210],num[210];
int cnt,vis[210];int n,r;
void euler(int u)
{
    cnt++;
    vis[u]=1;
    for(int v=0; v<n; v++)
        if(g[u][v]&&!vis[v])
            euler(v);
            return ;
}
int main()
{


    while(scanf("%d %d",&n,&r)!=EOF)
    {
        int a,b;
        memset(g,0,sizeof(g));
        memset(num,0,sizeof(num));
        cnt=0;
        memset(vis,0,sizeof(vis));
        for(int i=0; i<r; i++)
        {
            scanf("%d%d",&a,&b);
            g[a][b]=1;
            num[a]++;
            num[b]++;
        }
        int flag=0;
        for(int i=0; i<n; i++)
        {
            if(num[i]%2)
            {
                flag=1;
                printf("Not Possible\n");
                break;
            }
        }
        if(!flag)
        {
            euler(0);
            if(cnt!=n)
                 printf("Not Possible\n");
            else  printf("Possible\n");
        }
    }
    return 0;
}

抱歉!评论已关闭.