• uva 10596 欧拉回路


    判断是否存在欧拉回路只要两个条件

    图连通,不存在奇度点

    注意特判边为0的情况。另外这题数据坑。

    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    const int maxn=208;
    struct fuck{
     int u,v,next;
    }edge[maxn*maxn];
    int head[maxn];
    int tol;
    void init()
    {
     tol=0;
     memset(head,-1,sizeof(head));
    }
    void addedge(int u,int v)
    {
     edge[tol].u=u;
     edge[tol].v=v;
     edge[tol].next=head[u];
     head[u]=tol++;
    }
    bool vis[maxn];
    int du[maxn];
    void dfs(int u)
    {
     int i,v;
     vis[u]=true;
     for(i=head[u];i!=-1;i=edge[i].next)
     {
      v=edge[i].v;
      if(!vis[v]) dfs(v);
     }
    }
    bool judge(int n)
    {
     for(int i=1;i<=n;i++)
      if(du[i]%2) return true;
     return false;
    }
    int main()
    {
     int i,j,n,m,u,v;
     while(scanf("%d%d",&n,&m)==2)
     {
      init();
      memset(du,0,sizeof(du));
      u=0;
      for(i=1;i<=m;i++)
      {
       scanf("%d%d",&u,&v);
       u++;v++;
       du[u]++;du[v]++;
       addedge(u,v);
       addedge(v,u);
      }
      memset(vis,false,sizeof(vis));
      dfs(u);
      bool flag=false;
      for(i=1;i<=n;i++)
       if(!vis[i]&&du[i]>0)
         break;
     // printf("%d ",i);
      if(i>n) flag=true;
      if(!flag||judge(n)||m<2) printf("Not Possible ");
      else printf("Possible ");
     }
     return 0;
    }
  • 相关阅读:
    Extjs项目使用技巧————文件上传
    项目图片整理
    ExtJs 分组表格控件
    ExtJS实现有机菜单的功能
    ExtJs grid可拖拽行
    ExtJs 分组表格控件----监听
    ExtJS点击添加一个按钮弹出prompt添加combo中
    ExtJS——添加个用户页面
    mysql查询语句个人总结;
    java倒计时器
  • 原文地址:https://www.cnblogs.com/bitch1319453/p/4814697.html
Copyright © 2020-2023  润新知