解析

之前模拟考过的一道题
把字符串当成前后缀之间的连边即可
注意即使图的度数符合要求,也可能由于不连通而无解,需要再特判一下

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define ull unsigned long long
const int N=2e5+100;
ll read() {ll x=0,f=1;char c=getchar();while(!isdigit(c)) {if(c=='-')f=-1;c=getchar();}while(isdigit(c)) {x=x*10+(c^48);c=getchar();}return x*f;
}
int n,m;
int key=123;
struct node{int to,nxt;
}p[N<<1];
int fi[N],cnt;
inline void addline(int x,int y){p[++cnt]=(node){y,fi[x]};fi[x]=cnt;return;
}
int in[N],out[N];
int zhan[N],top;
char s[4];
void dfs(int x){for(int i=fi[x];~i;i=fi[x]){int to=p[i].to;fi[x]=p[i].nxt;dfs(to);}zhan[++top]=x;
}
int main(){//freopen("a.in","r",stdin);//freopen("a.out","w",stdout);memset(fi,-1,sizeof(fi));cnt=-1;n=read();for(int i=1;i<=n;i++){scanf(" %s",s+1);int a=s[1]*key+s[2],b=s[2]*123+s[3];in[b]++;out[a]++;addline(a,b);}int id(0),num(0);for(int i=1;i<=15252;i++){if(!in[i]&&!out[i]) continue;if(abs(out[i]-in[i])>1){printf("NO\n");return 0;}else if(out[i]>in[i]){num++;id=i;}else if(!id) id=i;}if(num>1){printf("NO\n");return 0;}dfs(id);if(top!=n+1) printf("NO\n");else{printf("YES\n");printf("%c%c",zhan[top]/key,zhan[top]%key);top--;while(top){putchar(zhan[top]%key);top--;}}return 0;
}
/**/

CF508D Tanya and Password(欧拉回路)相关推荐

  1. 寒假集训日志(二)——最小生成树,拓扑排序,欧拉回路,连通路

    今天学的内容挺多的. (一)首先说最小生成树,两种算法: 1.Kruskal算法( 将边排序,然后再选,关键在于检查是否连通,使用并查集) 2.Prim算法(使用点集,有点类似与最短路的算法) 第一题 ...

  2. CodeForces Round #288 Div.2

    A. Pasha and Pixels (水题 暴力) 题意: 有一个n×m的矩阵,最开始所有的格子都是白色的. 一个人按照某种顺序将格子涂成黑的,如果某个格子已经是黑的则忽略.在涂色的过程中如果出现 ...

  3. Android开发之第三方框架使用汇总

    1. image loading 框架: 1.1 Glide1.2 Picasso1.3 后续更新... 2.网络框架: 2.1 xUtil32.2 OkHttp32.3 Retrofit2.4 后续 ...

  4. You must reset your password using ALTER USER statement before executing thi

    第一次 安装好mysql 创建数据库的时候提示这个问题,百度了,自己的处理方法 就是第一次需要设置数据库的密码 ,把原始的数据库密码更改一下 更改密码的方法: mysql> SET PASSWO ...

  5. [模板][持续更新]欧拉回路与欧拉路径浅析

    Luogu P2731 骑马修栅栏 Riding the Fences 题目背景 Farmer John每年有很多栅栏要修理.他总是骑着马穿过每一个栅栏并修复它破损的地方. 题目描述 John是一个与 ...

  6. uoj 117 欧拉回路

    1.判断是否为欧拉存在欧拉回路---裸的判断 欧拉回路就是看一笔能不能把途中所有的边跑完没得重复 对于无向边----建立双向边判断每个点的入度是否为2的倍数   1.1 对于有向边---建立单向边判断 ...

  7. redmine忘记username和password

    环境: Ubuntu 13.10 bitnami-redmine-2.5.1-1-linux-x64-installer.run 用bitnami安装完redmine以后,有是否忘记了username ...

  8. MySQL登录时ERROR 1045:Access denied for user ‘root’@’localhost’ (using password: YES)

    MySQL登录时ERROR 1045错误 win10_x64系统中登录MySQL时出现1045错误 错误描述: ERROR 1045:Access denied for user 'root'@'lo ...

  9. 停止Password Manager Agent服务导致应用程序启动缓慢

    在一个实施环境中,部署了Password Manager用来实现单点登录功能,但是由于Password Manager的提示基本都是以英文为主,而且配置也比较麻烦,普通用户看见会比较影响用户体验,所以 ...

最新文章

  1. python操作系统-Python与操作系统有关的模块
  2. 2020 年的第 1 个重磅彩蛋!
  3. Excel中配置VBA的工作环境
  4. iOS程序员也要学点算法吧 简单排序之插入排序
  5. 使用Prometheus监控Linux系统各项指标
  6. bzoj 3232 01分数规划+最大权封闭子图判定
  7. MyBatisPlus分页
  8. 设计模式(1)单例模式
  9. 历届奥斯卡获奖影片(1971-2014年)
  10. PCB集成元件封装库下载推荐
  11. STM32 vcap引脚
  12. 彻底理解connection timeout
  13. 深入剖析Windows补丁
  14. AWS ARN 学习
  15. Jinja2安装与基本API用法
  16. 使用 微信JS-SDK 拍照 或者获取 相册 图片并展示
  17. OpenGL 开始学习指南
  18. led显示屏p10参数设置_如何看P10显示屏参数
  19. 严格执行8小时工作制、双休,会怎样?
  20. Yan LeCun会是AI界的居里夫人吗?

热门文章

  1. 【干货】机器学习中样本比例不平衡的处理方法
  2. python根据地址查看变量名_tensorflow创建变量以及根据名称查找变量
  3. 超详细图解!【MySQL进阶篇】MySQL索引原理
  4. egg前面加什么_国威说阀:阀门前面为什么加国标美标日标之类的?
  5. fb静态区域_fb 静态数据
  6. as本地仓库更改_将gitee仓库连接GitHub Desktop。新建更改仓库并上传至gitee。
  7. c++11 string u8_深入理解C++11:C++11新
  8. mac 配置php和mysql_Mac下配置PHP+MySql环境
  9. future.cancel不能关闭线程_多线程与高并发笔记
  10. 数据结构——二叉树的递归算法