无序字母对

题目描述

给定n个各不相同的无序字母对(区分大小写,无序即字母对中的两个字母可以位置颠倒)。请构造一个有n+1个字母的字符串使得每个字母对都在这个字符串中出现。

输入输出格式

输入格式:

第一行输入一个正整数n。

以下n行每行两个字母,表示这两个字母需要相邻。

输出格式:

输出满足要求的字符串。

如果没有满足要求的字符串,请输出“No Solution”。

如果有多种方案,请输出前面的字母的ASCII编码尽可能小的(字典序最小)的方案

输入输出样例

输入样例#1: 
4
aZ
tZ
Xt
aX
输出样例#1: 
XaZtX 

说明

【数据规模与约定】

不同的无序字母对个数有限,n的规模可以通过计算得到。

 

分析:

本题只需要对每两个字母连一条无向边,然后跑一边欧拉回路即可,所以我又水了一道模板题???

 

CODE:

 

 1 #include <cmath>
 2 #include <cstdio>
 3 #include <cstring>
 4 #include <iostream>
 5 #include <algorithm>
 6 using namespace std;
 7 const int M=1005;
 8 int rd[M],n,g[M][M],tot;
 9 char re[3],pat[M];
10 int work(char c){
11     if (c>='A'&&c<='Z') return c-'A'+1;
12     return c-'a'+27;
13 }
14 char work2(int c){
15     if (c<=26) return c+'A'-1;
16     return c-27+'a';
17 }
18 void add(int x,int y){
19     rd[x]++,rd[y]++;
20     g[x][y]=g[y][x]=1;
21     return;
22 }
23 void dfs(int now){
24     for (int i=1;i<=52;i++){
25         if (!g[now][i]) continue;
26         g[now][i]=g[i][now]=0;dfs(i);
27     }
28     pat[++tot]=work2(now);
29     return;
30 }
31 int main(){
32     scanf("%d",&n);
33     for (int i=1;i<=n;i++){
34         scanf("%s",re+1);
35         add(work(re[1]),work(re[2]));
36     }
37     int now=0,fir=53;
38     for (int i=1;i<=52;i++)
39         if (rd[i]&1) now++,fir=min(fir,i);
40     if (now&&now-2){printf("No Solution");return 0;}
41     if (now) dfs(fir);
42     else {
43         for (int i=1;i<=52;i++) if (rd[i]) fir=min(fir,i);
44         dfs(fir);
45     }
46     for (int i=tot;i>=1;i--) putchar(pat[i]);
47     return 0;
48 }

 

转载于:https://www.cnblogs.com/kanchuang/p/11185630.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/410695.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用计算机打出二分之一,win10手机计算器怎么输入二分之一?

win10系统的电脑方法/步骤首先单击桌面下方的开始菜单&#xff0c;或者按一下win键打开开始菜单的面板。在开始面板里单击所有应用&#xff0c;展开所有的应用。找到计算器并单击鼠标左键打开它。在此处我们如果单击鼠标右键可以选择将计算器固定到“开始”菜单和任务栏&#x…

pandas plot label_数据科学| 手把手教你用 pandas 索引、汇总、处理缺失数据

作者&#xff1a;Paul编者按&#xff1a; pandas提供了很多常用的数学和统计方法&#xff0c;本文中将用十分详细的例子来具体进行介绍&#xff1b;另外在许多数据分析工作中,缺失数据是经常发生的&#xff0c;将会具体介绍如何处理缺失数据。本文十分详细并实在低介绍了pandas…

2011年三八妇女节搜索引擎LOGO设计欣赏

今天是一年一度的三八国际妇女节&#xff0c;在这个特别的日子&#xff0c;烈火学院向所有女性致以节日的祝福&#xff0c;祝愿每位女同胞节日快乐&#xff0c;工作愉快&#xff01;并送上本期的搜索引擎LOGO设计欣赏&#xff0c;希望大家喜欢&#xff01; 一。百度 有作家曾说…

[html] 写html代码时,怎样才加速写代码的速度呢?你有什么方法?

[html] 写html代码时&#xff0c;怎样才加速写代码的速度呢&#xff1f;你有什么方法&#xff1f; 基于之前项目&#xff0c;整理出标准化方案。调研技术方案&#xff0c;提取可复用组件&#xff0c;方法等写代码前整理业务思路流程&#xff0c;先思考&#xff0c;后写码。个人…

Akka-CQRS(16)- gRPC用JWT进行权限管理

前面谈过gRPC的SSL/TLS安全机制&#xff0c;发现设置过程比较复杂&#xff1a;比如证书签名&#xff1a;需要服务端、客户端两头都设置等。想想实际上用JWT会更加便捷&#xff0c;而且更安全和功能强大&#xff0c;因为除JWT的加密签名之外还可以把私密的用户信息放在JWT里加密…

excel转html放在tomcat,Excel转web!把excel在线打开??

如题&#xff1a;把B/S下服务器上的excel&#xff0c;在客户机上用浏览器(web格式)打开&#xff0c;不想用先下载的方式实现。求实现办法&#xff1f;lxbzmy 去看看163 金山在线办公怎么实现的。思路&#xff1a;将excel打开并解析成html格式。你只需要保证足够的兼容性就可以了…

诺基亚2亿欧元建越南新工场

诺基亚昨天颁布发表将会在越南北部河内左近设立扶植一个新的装配厂&#xff0c;方案于2012年尾投入运用&#xff0c;初期投资达到2亿欧元&#xff0c;约合18.3亿人夷易近币。诺基亚目下当今在世界上拥有10个工场&#xff0c;新厂将会进入到诺基亚的举世制造搜集&#xff0c;为他…

Android 一直往文件写数据_( 十 ) 小众但好用:通过 Google drive 备份与同步 Keepass 数据库...

之前有提到过&#xff0c;keepass 的数据库是加密保存在本地的。而且 keepass 又是多平台免费的密码管理软件。所以如果需要实现 keepass 在多平台读取同一个数据库&#xff0c;我们需要自己搭一个服务器才怪&#xff01;搭服务器太麻烦&#xff0c;还要额外支出费用&#xff0…

mysql操作数据库

转载于:https://www.cnblogs.com/sunpxit/p/11189089.html

[html] 请说说你在写布局时对于浏览器兼容性的感受或总结

[html] 请说说你在写布局时对于浏览器兼容性的感受或总结 要選用某種方式,table&#xff0c;flex&#xff0c;float&#xff0c;定位來完成某一部分的佈局時&#xff0c;不要忘了是要跑在什麼瀏覽器以及設備上&#xff0c;比如定位在ios上是有些坑的&#xff0c;flex兼容性也並…

win7锁定计算机会断网吗,win7系统如何设置电脑定时断网

有些win7系统用户在使用电脑过程中&#xff0c;想要给电脑设置定时断网&#xff0c;但是却不知道要怎么操作&#xff0c;其实我们可以通过系统自带的任务计划功能来进行操作&#xff0c;该怎么操作呢&#xff0c;本教程就给大家讲解一下win7系统设置电脑定时断网的详细步骤。1、…

[浏览器]Apple之Safari 5.0.4

官方主页&#xff1a;http://www.apple.com/safari/ 2010-03-10 发布 Safari 5.0.4版本。 Safari 5.0.4 for Windows(28.2 MB) Safari 5.0.4 Leopard for Mac OS X(26.7 MB) Safari 5.0.4 Snow Leopard for Mac OS X(36.0 MB)转载于:https://www.cnblogs.com/iocn/archive/2011…

[html] H5的video可以播放哪些类型的文件?可以播放rtsp流吗?

[html] H5的video可以播放哪些类型的文件&#xff1f;可以播放rtsp流吗&#xff1f; Ogg、MPEG4、WebM,不能播放rtsp个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试…

回文_Manacher算法

算法简介:算法的目的是在O(n)的时间复杂度内找到一个字符串中各个字母所在的最大长度的回文串。 此算法用到了一个Rad[]数组的定义&#xff0c;Rad[i]表示回文的半径&#xff0c;即最大的j满足str[i-j1...i] str[i1...ij]。 我们的工作就是把全部的Rad[]求出来。 有两个结论: …

linux 查当前pid_杀死僵尸进程,你需要这些神奇高效的Linux命令行

Linux 高手&#xff0c;其实都是玩儿命令行很熟练的人。命令行的学习捷径Linux 命令有许多强大的功能&#xff1a;从简单的磁盘操作、文件存取&#xff0c;到进行复杂的多媒体图像和流媒体文件的制作&#xff0c;都离不开命令行。在 Linux 的学习中&#xff0c;新手都会遇到这么…

某8位微型计算机地址码为18位,2015广东海洋大学计算机组成原理试题

一、选择题1、在定点运算器中&#xff0c;无论采用双符号位还是单符号位&#xff0c;必须有___溢出判断电路___ &#xff0c;它一般采用来____异或门__实现。2、同步控制是___由统一时序信号控制的方式___。3、在微型机系统中&#xff0c;外围设备通过__适配器____与主机的系统…

nodejs: mkdirs 递归创建目录

nodejs里面的所有文件操作我们很显然地都会选择异步方式。 nodejs对于文件的基本操作果然是很基本的。例如我们想创建一个二级目录&#xff1a;/abc/def&#xff0c;使用fs.mkdir必须先判断/abc&#xff0c;存在&#xff0c;才继续创建/abc/def。这样几个一层层的callback&…

3d000: no database selected_No.[C9]020

No.[C9]-020”Youre Not Alone&#xff0c;never alone。“别难过&#xff0c;别害怕&#xff0c;这个世界还有那么多爱你的人&#xff0c;和支持你的人&#xff0c;生活可能没有那么趁人心意&#xff0c;每个人都如此&#xff0c;别灰心&#xff0c;你并不孤单。(愿我的好朋友…

js实现树形结构化

我是歌谣 放弃很容易 但是坚持一定很酷 微信公众号关注小歌谣 日常分享前后端知识 前言 今天来讲一下平常我们做权限系统中的树形结构知识 就是如何把对应关系的结构数据转换为可以一个树形结构 const data [{id: 2,pid: 0,path: /course,name: Course,title: 课程管理},{id…

初中计算机课教什么时候,初中计算机教学课程教学方法探讨

黄其浩摘要&#xff1a;初中计算机课程的教学工作对于提升学生的综合素质有着十分重要的作用&#xff0c;本文深入分析了初中计算机教学中存在的问题&#xff0c;并且从两个角度提出了初中计算机教学中的解决问题的思路&#xff0c;为初中计算机课程教学工作提出了有效的管理方…