这是一道欧拉回路题

欧拉回路:就是一个路径包括每条边恰好一次。

判断是否满足欧拉回路。首先是图是联通的。其次图中每个点的入度等于出度。如果是欧拉路径的话,满足奇点只能等于2或0,并且对于有向图,奇点的入度和出度差值为1和-1。

  1 #include <iostream>
  2 #include <cstring>
  3 #include <string>
  4 #include <map>
  5 #include <set>
  6 #include <algorithm>
  7 #include <fstream>
  8 #include <cstdio>
  9 #include <cmath>
 10 #include <stack>
 11 #include <queue>
 12 using namespace std;
 13 const double Pi=3.14159265358979323846;
 14 typedef long long ll;
 15 const int MAXN=5000+5;
 16 const int dx[5]={0,0,1,-1};
 17 const int dy[5]={1,-1,0,0};
 18 const int INF = 0x3f3f3f3f;
 19 const int NINF = 0xc0c0c0c0;
 20 int t;
 21 int in[MAXN];
 22 int out[MAXN];
 23 int mp[MAXN][MAXN];
 24 bool vis1[MAXN];
 25 bool vis2[MAXN];
 26
 27 bool dfs(int v,vector <int> S)
 28 {
 29     for(int i=0;i<S.size();i++)
 30     {
 31         if(!vis2[S[i]]&&mp[v][S[i]])
 32         {
 33             vis2[S[i]]=1;
 34             dfs(S[i],S);
 35         }
 36     }
 37 }
 38 int main()
 39 {
 40     cin>>t;
 41     while(t--)
 42     {
 43
 44         memset(vis1,0,sizeof(vis1));
 45         memset(vis2,0,sizeof(vis2));
 46         memset(in,0,sizeof(in));
 47         memset(out,0,sizeof(out));
 48         memset(mp,0,sizeof(mp));
 49         int n;scanf("%d",&n);
 50         vector <int> S;
 51         for(int i=1;i<=n;i++)
 52         {
 53             string str;cin>>str;
 54             int len=str.size();
 55             int inc=str[0]-'a';
 56             int outc=str[len-1]-'a';
 57             mp[inc][outc]=1;
 58             vis1[inc]=1;vis1[outc]=1;
 59             in[inc]++;
 60             out[outc]++;
 61         }
 62         for(int i=0;i<26;i++) if(vis1[i]) {S.push_back(i);}
 63
 64         vector <int> V;
 65         for(int i=0;i<26;i++)
 66         {
 67             if(in[i]!=out[i]) V.push_back(i);
 68         }
 69         vis2[S[0]]=1;
 70         dfs(S[0],S);
 71         int flag=1;
 72         for(int i=0;i<26;i++) cout <<vis1[i]<<" ";
 73         cout <<endl;
 74         for(int i=0;i<26;i++) cout <<vis2[i]<<" ";
 75         cout <<endl;
 76         for(int i=0;i<26;i++)
 77         {
 78             if(vis1[i]!=vis2[i])
 79             {
 80                 flag=0;
 81                 break;
 82             }
 83         }
 84         if(!flag)
 85             printf("The door cannot be opened.\n");
 86         else
 87         {
 88             if(V.size()==2)
 89             {
 90                 if((out[V[0]]-in[V[0]])==(in[V[1]]-out[V[1]])&&abs(out[V[0]]-in[V[0]])==1)
 91                 {
 92                     printf("Ordering is possible.\n");
 93                 }
 94                 else printf("The door cannot be opened.\n");
 95              }
 96
 97             else printf("The door cannot be opened.\n");
 98         }
 99     }
100     return 0;
101 }
102
103  

转载于:https://www.cnblogs.com/Msmw/p/10671874.html

UVa10129(还没ac)各种re,o(╥﹏╥)o相关推荐

  1. 支付宝的架构到底有多牛逼!还没看完我就跪了!

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 来源:uee.me/cFgQC 自 2008 年双 11 以来,在 ...

  2. 阿里大佬告诉你,支付宝的架构到底有多牛逼!还没看完我就跪了!

    自 2008 年双 11 以来,在每年双 11 超大规模流量的冲击上,蚂蚁金服都会不断突破现有技术的极限. 2010 年双 11 的支付峰值为 2 万笔/分钟,到 2017 年双 11 时这个数字变为 ...

  3. 支付宝的架构到底有多牛逼?还没看完我就跪了!

    自 2008 年双 11 以来,在每年双 11 超大规模流量的冲击上,蚂蚁金服都会不断突破现有技术的极限.2010 年双 11 的支付峰值为 2 万笔/分钟,到 2017 年双 11 时这个数字变为了 ...

  4. 支付宝架构有多牛?还没看完我就跪了...

    点击上方"Java基基",选择"设为星标" 做积极的人,而不是积极废人! 每天 14:00 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | Java ...

  5. 第46届icpc 沈阳 J-Luggage Lock(思维 + 爆搜 / 队友玄学出法, 还没看懂)

    第46届icpc 沈阳 J-Luggage Lock(思维 + 爆搜 / 队友玄学出法, 还没看懂) 题目来源:第46届icpc 沈阳 J-Luggage Lock 题意: 给出两个四位数的密码锁a和 ...

  6. 余承东安卓鸿蒙,鸿蒙亮点多,网友嗨了!华为P50还没定,余承东:最强大操作系统...

    一生万物,万物归一,这就是鸿蒙. 6月2日晚间,华为正式发布HarmonyOS(鸿蒙)系统,及多款搭载HarmonyOS的新产品,包括HUAWEI Mate 40系列.P40系列.Mate X2.no ...

  7. 「屋漏偏逢连夜雨」,Log4j 漏洞还没忙完,新的又来了

    整理 | 郑丽媛.禾木木 出品 | CSDN 这几天,Apache Log4j 2 绝对是众多 Java 程序员提到的高频词之一:由于 Apache Log4j 2 引发的严重安全漏洞,令一大批安全人 ...

  8. HTTP/3 来了 !HTTP/2 还没怎么用起来呢,先一起扫个盲吧!

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者 | billpchen 来源 | 公众号「占小狼的博客」 2 ...

  9. 生活有时会有点苦涩——一位第六年还没发paper的PHD的自述

    公众号关注 "视学算法" 设为 "星标",DLCV消息即可送达! 来自 | 知乎 作者丨少十七 来源丨https://www.zhihu.com/questio ...

最新文章

  1. 利用ES6进行Promise封装总结
  2. ehcache 默认大小_简单的使用ehcache
  3. 天池-新闻推荐-多路召回
  4. ubuntu软件中心打不开Python error
  5. 数据抓取的艺术(二)
  6. Atitit 效率提升分析与解决方案 1. 三大模式 优化资源配置 通过降低难度 提升培训 1 1.1. 优化资源配置 1 1.2. 通过降低难度 1 1.3. 提升培训 1 2. 有效与立即可
  7. 分享一个轻量级免费UML绘图工具JUDE
  8. python--超市水果销售系统2.0
  9. 浅谈学习的深度和广度
  10. img 标签如何使图片成为圆形
  11. Java后端根据身份证号获取年龄
  12. RTOS内功修炼记(七)—— 内存管理
  13. 短视频SDK超级简单易用
  14. SSL、WSS和HTTPS之间的关系
  15. Quartz创建定时任务(入门)
  16. NeuralProphet之二:季节性(Seasonality)
  17. 得物还是“毒物”?鉴别唯品会京东商品为假,得物商品却不支持退换货
  18. docker 打包python 应用
  19. WikiLeaks 接触科技公司协商披露 CIA 机密如 0day 漏洞
  20. 分布式光纤测温火灾报警系统在向家坝某水电站的应用

热门文章

  1. 使用bakefile编译C工程代码
  2. BZOJ 2733 线段树的合并 并查集
  3. Shareplex 错误 can't open or read object cache file
  4. linux系统——fread()与read()函数族区别
  5. CXF与Web项目集成---without Spring
  6. safari的调试工具
  7. CentOS 5.3 安装nginx+mysql+php
  8. 电脑高手常用的5个按钮
  9. linux配置gprs modem
  10. 手持光谱分光仪太贵,用什么代替?