P1341 无序字母对
题面: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 无序字母对相关推荐
- 洛古--P1341 无序字母对--欧拉路径--Sabrina--Sabrinadol
题目网站 题目描述 给定n个各不相同的无序字母对(区分大小写,无序即字母对中的两个字母可以位置颠倒).请构造一个有n+1个字母的字符串使得每个字母对都在这个字符串中出现. 输入输出格式 输入格式: 第 ...
- luogu P1341 无序字母对(欧拉回路应用、模板)
整理的算法模板合集: ACM模板 目录 输出n+1个字母,使得n个字母对都在这个字符串中出现,因为是n+1个字母,所以我们可以看出来其实就是一个欧拉路径,因为字母对可以替换顺序,所以我们将每个字母对都 ...
- [洛谷P1341]无序字母对
题目大意:给一张无向图,找一条字典序最小的欧拉路径 题解:若图不连通或有两个以上的奇数点,则没有欧拉路径,可以$dfs$,在回溯时把这个节点加入答案 卡点:没有在回溯时加入答案,导致出现了欧拉路径没走 ...
- 欧拉回路【洛谷习题】无序字母对
首先非常痛心疾首地说一句,欧拉回路自己之前只是看过代码,知道思想,从来没有亲手实现过,所以,,,伤亡惨重!!! 欧拉回路是一个非常有意思的图论模型,因为伟大的数学家欧拉(euler)而得名.传说,曾经 ...
- luogu1341 无序字母对
题目大意 给定n个各不相同的无序字母对(区分大小写,无序即字母对中的两个字母可以位置颠倒).请构造一个有n+1个字母的字符串使得每个字母对都在这个字符串中出现.若有多解,输出字典序最小的那一个. 题解 ...
- 【洛谷1341】无序字母对(欧拉回路)
点此看题面 大致题意:给你\(n\)个各不相同的无序字母对(注意:两个字母可能相同,被这个坑了好几次),请构造一个长度为\(n+1\)的字符串包含每个字母对. 欧拉回路 这是一道裸的欧拉回路,只不过是 ...
- 【Luogu1341】无序字母对(并查集联通,欧拉路模板)
problem 给定n个各不相同的无序字母对(区分大小写,无序即字母对中的两个字母可以位置颠倒). 请构造一个有n+1个字母的字符串使得每个字母对都在这个字符串中出现. 输出字典序最小的方案(n的规模 ...
- 洛谷 1341 无序字母对
欧拉路的裸题??? 1 #include <algorithm> 2 #include <iostream> 3 #include <cstring> 4 #inc ...
- [luogu1341] 无序字母对
欧拉路径模板,但是细节有点多-- 存在欧拉路径的条件: 图连通 : 使用并查集维护 只有两个点的度为奇数,或者没有一个点 #include <cstdio> #include <cs ...
最新文章
- 边缘计算芯片格局分析
- Map Join介绍及案例
- 代码优化的 5 大原则,第 1 条相信你一开始就没想到!
- UVA 10815 Andy's First Dictionary(STL: set)
- access-control-allow-origin php,PHP通过Access-Control-Allow-Origin 跨域
- OC之ARC环境中的循环strong问题
- 表变量是什么_DAX学习:使用VAR定义变量
- python人脸识别教程_50行Python代码+OpenCV实现人脸识别!史上最详细的教程!
- ibatis 用HashMap解决Ibatis未知列名和列数的查询结果的resultClass映射
- 【大数据】Azkaban学习笔记
- 工厂模式(简单、普通、抽象)
- 数据结构c语言版题库填空题,数据结构(C语言版)选择、填空题
- PLSQL导入导出表结构及数据
- 不要质疑读者,读者永远比作者聪明
- 2016,我有些明白了
- kubernetes高可用集群web页面部署
- 魔兽世界az端和TC端有什么区别 Mangos,TC,SW,AZ,AC的关系
- (一)QCustomPlot常见属性设置、多曲线绘制、动态曲线绘制、生成游标、矩形放大等功能实现
- win10 程序最小化不在任务栏了?在左下角
- Linux Overview
热门文章
- UNION 和UNION ALL的区别
- css expression
- 一个有趣的关于flash和多种设备交互等技术应用的演示网站
- Mysql查漏补缺笔记
- 《Java并发编程的艺术》一一第2章Java并发机制的底层实现原理
- 解决Maven报Plugin execution not covered by lifecycle configuration
- 使用transform和transition制作CSS3动画
- javascript--------this探险
- Mac os android×××,环境配置 mountain lion10.8.2 配置×××环境,并编译源码
- 水滴石穿之IFRANME加载完成判断、获取函数的动态参数信息