题面:https://www.luogu.org/problem/P1341

本题是一个欧拉回路模板题,直接建图跑欧拉回路即可,注意:有环时需回溯后再记录.Code:
#include<iostream>
#include<cmath>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
const int N=10005;
int cnt[N][N],ans[N],cur,cnt0[N];
void dfs(int u){for(int i=1;i<=52;i++){if(cnt[u][i]){cnt[u][i]--;cnt[i][u]--;cnt0[i]--;cnt0[u]--;dfs(i);}}ans[++cur]=u;
}
int main(){int n,kdl=0;scanf("%d",&n);scanf("\n");for(int i=1;i<=n;i++){char a,b;int c,d;scanf("%c%c\n\n",&a,&b);if(a>='A'&&a<='Z')c=a-'A'+1;else c=a-'a'+27;if(b>='A'&&b<='Z')d=b-'A'+1;else d=b-'a'+27;cnt[c][d]++;cnt[d][c]++;cnt0[c]++,cnt0[d]++;}int f=0;for(int i=1;i<=52;i++){if(cnt0[i]&1){if(f==0){f=i;}kdl++;}}if(kdl!=2&&kdl){puts("No Solution");return 0;}if(kdl==0){for(int i=1;i<=52;i++){if(cnt0[i]){f=i;break;}}}dfs(f);for(int i=1;i<=52;i++){if(cnt0[i]){puts("No Solution");return 0;}}for(int i=cur;i>=1;i--){if(ans[i]>=1&&ans[i]<=26){printf("%c",ans[i]+'A'-1);}else{printf("%c",ans[i]+'a'-27);}}puts("");return 0;
}

转载于:https://www.cnblogs.com/ukcxrtjr/p/11504011.html

P1341 无序字母对相关推荐

  1. 洛古--P1341 无序字母对--欧拉路径--Sabrina--Sabrinadol

    题目网站 题目描述 给定n个各不相同的无序字母对(区分大小写,无序即字母对中的两个字母可以位置颠倒).请构造一个有n+1个字母的字符串使得每个字母对都在这个字符串中出现. 输入输出格式 输入格式: 第 ...

  2. luogu P1341 无序字母对(欧拉回路应用、模板)

    整理的算法模板合集: ACM模板 目录 输出n+1个字母,使得n个字母对都在这个字符串中出现,因为是n+1个字母,所以我们可以看出来其实就是一个欧拉路径,因为字母对可以替换顺序,所以我们将每个字母对都 ...

  3. [洛谷P1341]无序字母对

    题目大意:给一张无向图,找一条字典序最小的欧拉路径 题解:若图不连通或有两个以上的奇数点,则没有欧拉路径,可以$dfs$,在回溯时把这个节点加入答案 卡点:没有在回溯时加入答案,导致出现了欧拉路径没走 ...

  4. 欧拉回路【洛谷习题】无序字母对

    首先非常痛心疾首地说一句,欧拉回路自己之前只是看过代码,知道思想,从来没有亲手实现过,所以,,,伤亡惨重!!! 欧拉回路是一个非常有意思的图论模型,因为伟大的数学家欧拉(euler)而得名.传说,曾经 ...

  5. luogu1341 无序字母对

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

  6. 【洛谷1341】无序字母对(欧拉回路)

    点此看题面 大致题意:给你\(n\)个各不相同的无序字母对(注意:两个字母可能相同,被这个坑了好几次),请构造一个长度为\(n+1\)的字符串包含每个字母对. 欧拉回路 这是一道裸的欧拉回路,只不过是 ...

  7. 【Luogu1341】无序字母对(并查集联通,欧拉路模板)

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

  8. 洛谷 1341 无序字母对

    欧拉路的裸题??? 1 #include <algorithm> 2 #include <iostream> 3 #include <cstring> 4 #inc ...

  9. [luogu1341] 无序字母对

    欧拉路径模板,但是细节有点多-- 存在欧拉路径的条件: 图连通 : 使用并查集维护 只有两个点的度为奇数,或者没有一个点 #include <cstdio> #include <cs ...

最新文章

  1. 边缘计算芯片格局分析
  2. Map Join介绍及案例
  3. 代码优化的 5 大原则,第 1 条相信你一开始就没想到!
  4. UVA 10815 Andy's First Dictionary(STL: set)
  5. access-control-allow-origin php,PHP通过Access-Control-Allow-Origin 跨域
  6. OC之ARC环境中的循环strong问题
  7. 表变量是什么_DAX学习:使用VAR定义变量
  8. python人脸识别教程_50行Python代码+OpenCV实现人脸识别!史上最详细的教程!
  9. ibatis 用HashMap解决Ibatis未知列名和列数的查询结果的resultClass映射
  10. 【大数据】Azkaban学习笔记
  11. 工厂模式(简单、普通、抽象)
  12. 数据结构c语言版题库填空题,数据结构(C语言版)选择、填空题
  13. PLSQL导入导出表结构及数据
  14. 不要质疑读者,读者永远比作者聪明
  15. 2016,我有些明白了
  16. kubernetes高可用集群web页面部署
  17. 魔兽世界az端和TC端有什么区别 Mangos,TC,SW,AZ,AC的关系
  18. (一)QCustomPlot常见属性设置、多曲线绘制、动态曲线绘制、生成游标、矩形放大等功能实现
  19. win10 程序最小化不在任务栏了?在左下角
  20. Linux Overview

热门文章

  1. UNION 和UNION ALL的区别
  2. css expression
  3. 一个有趣的关于flash和多种设备交互等技术应用的演示网站
  4. Mysql查漏补缺笔记
  5. 《Java并发编程的艺术》一一第2章Java并发机制的底层实现原理
  6. 解决Maven报Plugin execution not covered by lifecycle configuration
  7. 使用transform和transition制作CSS3动画
  8. javascript--------this探险
  9. Mac os android×××,环境配置 mountain lion10.8.2 配置×××环境,并编译源码
  10. 水滴石穿之IFRANME加载完成判断、获取函数的动态参数信息