http://codeforces.com/contest/508/problem/D

以上是题目链接

题目大意 给n个字符串看能不能链接在一起

因为 三个三个分割 所以字符串  如abc ab作为起点 bc作为终点

hash思想 加细节处理 欧拉图均满足

#include<cstdio>
#include<map>
//#include<bits/stdc++.h>
#include<vector>
#include<stack>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<set>
#include<queue>
#include<cstdlib>
#include<climits>
#include<cctype>
#define PI acos(-1.0)
#define INF 0x3fffffff
using namespace std;
typedef long long ll;
typedef __int64 int64;
const ll mood=1e9+;
const int64 Mod=;
const double eps=1e-;
const int N=8e3;
const int MAXN=;
typedef int rl;
inline void r(rl&num){
num=;rl f=;char ch=getchar();
while(ch<''||ch>''){if(ch=='-')f=-;ch=getchar();}
while(ch>=''&&ch<='')num=num*+ch-'',ch=getchar();
num*=f;
}
int gt(char a)//hash
{
if(isdigit(a)) return a-'';
if(islower(a)) return a-'a'+;
return a-'A'+;
}
int ha(char a,char b)
{
return gt(a)*+gt(b);
}
char fg(int a)
{
if(a<)return a+'';
if(a<=gt('z')) return a-+'a';
return a-+'A';
}
vector<int>v[N];
string ss;
void dfs(int x)
{
while(!v[x].empty()){
int tem=v[x].back();
v[x].pop_back();
dfs(tem);
}
ss+=fg(x%);
//cout<<ss<<endl;
}
int ind[N];
int main()
{
char ch[];
int n;
r(n);
for(int i=;i<n;i++)
{
scanf("%s",ch);
int s=ha(ch[],ch[]),e=ha(ch[],ch[]);
v[s].push_back(e);
ind[s]++;ind[e]--;
}
int st=-,out=;//-1表示回路
for(int i=;i<N;i++)
{
if(ind[i]>=){
st=i;
out++;
}
}
if(out>||ind[st]>)//ind[s] 表示图仅有一个点指向多个点构成
{
puts("NO");
return ;
}
if(st==-)
{
for(int i=;i<N;i++)
{
if(!v[i].empty())
{
st=i;
break;
}
}
}
dfs(st);
ss+=fg(st/);
if(ss.size()==n+)
{
puts("YES");
for(int i=n+;i>=;i--)
cout<<ss[i];
}
else{
puts("NO");
}
return ;
}

欧拉

欧拉回路/通路 Codeforces Round #288 (Div. 2)的更多相关文章

  1. 贪心+模拟 Codeforces Round #288 (Div. 2) C. Anya and Ghosts

    题目传送门 /* 贪心 + 模拟:首先,如果蜡烛的燃烧时间小于最少需要点燃的蜡烛数一定是-1(蜡烛是1秒点一支), num[g[i]]记录每个鬼访问时已点燃的蜡烛数,若不够,tmp为还需要的蜡烛数, ...

  2. 贪心 Codeforces Round #288 (Div. 2) B. Anton and currency you all know

    题目传送门 /* 题意:从前面找一个数字和末尾数字调换使得变成偶数且为最大 贪心:考虑两种情况:1. 有偶数且比末尾数字大(flag标记):2. 有偶数但都比末尾数字小(x位置标记) 仿照别人写的,再 ...

  3. Codeforces Round #288 (Div. 2)D. Tanya and Password 欧拉通路

    D. Tanya and Password Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/508 ...

  4. Codeforces Round #288 (Div. 2) E. Arthur and Brackets

    题目链接:http://codeforces.com/contest/508/problem/E 输入一个n,表示有这么多对括号,然后有n行,每行输入一个区间,第i行的区间表示从前往后第i对括号的左括 ...

  5. Codeforces Round #288 (Div. 2)

    A. Pasha and Pixels     题意就是给一个n*m的矩阵,k次操作,一开始矩阵全白,一次操作可以染黑一个格子,问第几次操作可以使得矩阵中存在一个2*2的黑色矩阵.直接模拟即可 代码: ...

  6. 模拟 Codeforces Round #288 (Div. 2) A. Pasha and Pixels

    题目传送门 /* 模拟水题:给定n*m的空白方格,k次涂色,将(x,y)处的涂成黑色,判断第几次能形成2*2的黑色方格,若不能,输出0 很挫的判断四个方向是否OK */ #include <cs ...

  7. Codeforces Round #288 (Div. 2) C. Anya and Ghosts 模拟

    C. Anya and Ghosts time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  8. Codeforces Round #288 (Div. 2) E. Arthur and Brackets 贪心

    E. Arthur and Brackets time limit per test 2 seconds memory limit per test 128 megabytes input stand ...

  9. Codeforces Round #288 (Div. 2) C. Anya and Ghosts 模拟 贪心

    C. Anya and Ghosts time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

随机推荐

  1. UVa 1658 Admiral (最小费用流)

    题意:给定一个图,求1-n的两条不相交的路线,并且权值和最小. 析:最小费用流,把每个结点都拆成两个点,中间连一条容量为1的边,然后一个作为入点,另一个是出点.最后跑两次最小费用流就行了. 代码如下: ...

  2. 为何在有 DOCTYPE 的 HTML 文档之上仍然还会出现混杂模式?

    不使用 DOCTYPE 一定会使 HTML 文档处于混杂模式,然而使用了 DOCTYPE,也不一定就能够使文档在所有浏览器中均处于标准模式. DOCTYPE 本身不就是一个“开关”吗?为何在有 DOC ...

  3. XSL简单实例

    利用xsl可以做到将数据和格式完全分离,下面比较一个xml+css和xml+xsl的区别. XML + css resume.xml文件内容如下: <?xml version="1.0 ...

  4. 【Linux】Devops的一些运维工具

    一.Devops简介 从手工编译.上传服务器文件.执行命令.启动停止服务器.发现BUG再重复一遍流程,软件开发的重复劳动越来越多,在Devops概念之前,全部要靠人工手动完成,也看到了很多运维人员半夜 ...

  5. 百度网盘不限速!VIP视频免费看!这两款插件被无数人安利!

    今天给给位推荐两款,我一直在使用的浏览器插件,简直爆炸!全网VIP视频随意看,所有网页上的视频,你想要的全部都能下载! 这两款插件堪称日常必备插件,只要你使用浏览器,就一定需要下面这些插件功能:快速下 ...

  6. socket连接 代码

    dispatch_sync(dispatch_get_global_queue(, ), ^{ // 处理耗时操作的代码块... // 创建socket /* 1.AF_INET: ipv4 执行ip ...

  7. C#静态类、静态构造函数,类与结构体的比较

    一.静态类 静态类是不能实例化的,我们直接使用它的属性与方法,静态类最大的特点就是共享. 探究 public static class StaticTestClass{    public stati ...

  8. js中对象与函数的关系

    首先什么是对象?根据W3C上面的解释JS中所有事物都是对象,对象是拥有属性和方法的数据,由此可以看出基本值类型不是对象(number.string.Boolean.Undefined),剩下的引用类型 ...

  9. mouseover等闪烁问题

    在使用mouseover等鼠标事件时如移动上去灰色的遮罩层高度从0到100% 在操作中发现鼠标一直在图里面但遮罩会一直变化,我感觉应该是遮罩层出现后导致鼠标离开了底层图片所以会一直变化.想起之前用的 ...

  10. arcengine geometry union操作

    以前得到的结果老是某一个,用下面的方法就可以获取合并后的结果 IGeometry pUnionGeo = null; var bFirst = true; foreach (IGeometry pGe ...