这是一道欧拉回路题

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

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

 #include <iostream>
#include <cstring>
#include <string>
#include <map>
#include <set>
#include <algorithm>
#include <fstream>
#include <cstdio>
#include <cmath>
#include <stack>
#include <queue>
using namespace std;
const double Pi=3.14159265358979323846;
typedef long long ll;
const int MAXN=+;
const int dx[]={,,,-};
const int dy[]={,-,,};
const int INF = 0x3f3f3f3f;
const int NINF = 0xc0c0c0c0;
int t;
int in[MAXN];
int out[MAXN];
int mp[MAXN][MAXN];
bool vis1[MAXN];
bool vis2[MAXN]; bool dfs(int v,vector <int> S)
{
for(int i=;i<S.size();i++)
{
if(!vis2[S[i]]&&mp[v][S[i]])
{
vis2[S[i]]=;
dfs(S[i],S);
}
}
}
int main()
{
cin>>t;
while(t--)
{ memset(vis1,,sizeof(vis1));
memset(vis2,,sizeof(vis2));
memset(in,,sizeof(in));
memset(out,,sizeof(out));
memset(mp,,sizeof(mp));
int n;scanf("%d",&n);
vector <int> S;
for(int i=;i<=n;i++)
{
string str;cin>>str;
int len=str.size();
int inc=str[]-'a';
int outc=str[len-]-'a';
mp[inc][outc]=;
vis1[inc]=;vis1[outc]=;
in[inc]++;
out[outc]++;
}
for(int i=;i<;i++) if(vis1[i]) {S.push_back(i);} vector <int> V;
for(int i=;i<;i++)
{
if(in[i]!=out[i]) V.push_back(i);
}
vis2[S[]]=;
dfs(S[],S);
int flag=;
for(int i=;i<;i++) cout <<vis1[i]<<" ";
cout <<endl;
for(int i=;i<;i++) cout <<vis2[i]<<" ";
cout <<endl;
for(int i=;i<;i++)
{
if(vis1[i]!=vis2[i])
{
flag=;
break;
}
}
if(!flag)
printf("The door cannot be opened.\n");
else
{
if(V.size()==)
{
if((out[V[]]-in[V[]])==(in[V[]]-out[V[]])&&abs(out[V[]]-in[V[]])==)
{
printf("Ordering is possible.\n");
}
else printf("The door cannot be opened.\n");
} else printf("The door cannot be opened.\n");
}
}
return ;
}

UVa10129(还没ac)各种re,o(╥﹏╥)o的更多相关文章

  1. 7-3 Path to Infinity(还没ac)

    留坑 #include<bits/stdc++.h> using namespace std; ; ; typedef long long ll; string s,t; ,tol2=,t ...

  2. 在各方面还没准备好的时候,大家一定要慎用border-box样式!!!!

    这几天,我被一个js问题困扰到癫狂了! 事情是这样的,我之前写了个功能非常复杂的纯jquery代码的前端gridview控件,实现了大量的功能和效果,在一些项目里也用得很好. 最近有个项目,样式做了调 ...

  3. 成功熬了四年还没死?一个IT屌丝创业者的深刻反思

    三个IT屌丝创业的故事 从前有三个屌丝,聚在一起做网络.提供免费的网络服务,砸锅卖铁,通宵达旦,除了卖肾,啥都做了.3年后终于做到了五百万用户.对于年轻人来说,能把五百万人玩弄于鼓掌之间,已经是很牛逼 ...

  4. php大力力 [013节]mySQL数据库乱码问题我还没解决

    <?php echo"测试<br>"; $sql_connection = mysql_connect("localhost","e ...

  5. 你好,C++(21)只要天还没黑,就一直在工地干活-4.3.1 while循环:只要…就一直…

    4.3  循环控制语句 在现实世界中,有这样一类现象: 只要油箱中的当前油量小于油箱容量100升,就一直往油箱中加油: 一直不断地为祖国辛勤工作,只要我还活着: 公司100000位员工,每个人的工资都 ...

  6. 谁还没遇上过NoClassDefFoundError咋地——浅谈字节码生成与热部署

    谁还没遇上过NoClassDefFoundError咋地--浅谈字节码生成与热部署 前言 在Java程序员的世界里,NoClassDefFoundError是一类相当令人厌恶的错误,因为这类错误通常非 ...

  7. noi2018还没想好记

    前面说点什么.. 没想到吧 嘴上说着不写的彩笔博主最后还是写了这篇东西.. Day -inf 在雅礼集训,打了四场模拟赛.. 真正说打得好的.. 也就那么一场 身体很差 心态很差 状态很差 虽然有书读 ...

  8. C-Lodop提示“网页还没下载完毕,请稍等一下再操作.”

    该提示在Lodop旧版本中是: 提示"WebSocket没准备好,点确定继续",提示“C-Lodop没准备好”,新版本修改了该提示的描述“网页还没下载完毕,请稍等一下再操作.”,让 ...

  9. web工程启动时,在一个类中延迟加载Bean,因为该Bean类可能还没被JVM加载

     问题描述: (1)javaWeb项目启动中,还没启动完成,在下面这个类加载另一个Bean类, (2)通过getBean方法获取到该Bean,可以获取到,不为null (3)但是,调用该Bean的方法 ...

随机推荐

  1. Firebug: 已拦截跨源请求:同源策略禁止读取位于XXX的远程资源。(原因:CORS 头缺少 'Access-Control-Allow-

    第一种,就是在被请求的程序中添加HTTP头,即CORS跨域(跨域资源共享,Cross-Origin Resource Sharing) 如: Response.Headers.Add("Ac ...

  2. C_program assignment 2

    /* Name: C program assignment 2 Copyright: Author: ShiroKa_X Date: 22/03/17 14:07 Description: */ #i ...

  3. 程序员必会算法-KMP算法

    KMP算法是一种优秀的字符串匹配算法,字符串匹配的常规算法是一步一步进行移位和比较操作,直至找到完全相匹配的字符串. 下面通过一个例子,为大家仔细说明KMP算法的使用和思路: 问题: 在字符串“DEA ...

  4. java第七次课堂笔记

  5. validation-api各注解的用法

    入参用@Valid,要不下面实体类中的注解不生效 @AssertFalse 被注解的元素必须为false@AssertTrue 被注解的元素必须为True@DecimalMax(value) 被注解的 ...

  6. 小白的首个maven web项目Step1软件安装二(Tomcat及相关配置)

    安装tomcat9.0,依照此教程非常详细:https://blog.csdn.net/cyz1151148946/article/details/76691976/ 教程最后测试tomcat的时候有 ...

  7. Cronolog日志分割、定时清理

    阿里云发送短信提示服务器磁盘占用到80%警报短信 经过排查发现tomcat日志文件达到10个多G,手动删除过久的日志文件后恢复到50% 但是catalina.out文件还有6个G 解决方法 一.安装C ...

  8. 使用DD 创建SWAP

    1创建所需swap空间的文件 + records in + records out bytes ( MB) copied, 2.01386 s, 52.1 MB/s[root@web01 ~]# ll ...

  9. Python处理数据库

    使用数据库驱动连接数据库 (Connection对象) 打开游标(Cursor对象),并通过它执行SQL语句(execute方法) 提交操作(commit()) 关闭连接(close()) ORM将表 ...

  10. 踩坑学习python自动化测试第一天!

    这只是一个标题, # 迭代器与生成器# 迭代器有两个基本的方法:iter() 和 next(). # 字符串,列表或元组对象都可用于创建迭代器:"""list1 = [1 ...