博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
洛谷P1341 无序字母对[无向图欧拉路]
阅读量:4991 次
发布时间:2019-06-12

本文共 995 字,大约阅读时间需要 3 分钟。

题目描述

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

输入输出格式

输入格式:

 

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

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

 

输出格式:

 

输出满足要求的字符串。

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

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

 

输入输出样例

输入样例#1:
4aZtZXtaX
输出样例#1:
XaZtX

说明

【数据规模与约定】

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


 

看似很水,实际暴露了很多问题

1.无向图欧拉路,de全为even或两个odd

2.欧拉路是vis判边走过没有不是点

3.字典序 加一个栈里逆序输出,这个栈要n*n大小

4.大小写字母虽然中间夹了几个字符,也没必要写个ID函数

5.%别打成/

////  main.cpp//  luogu1341////  Created by Candy on 11/11/2016.//  Copyright © 2016 Candy. All rights reserved.//#include 
#include
#include
#include
using namespace std;const int N=105,INF=1e9;int n,cn=58,a[N],u,v;char s[5];//inline int id(char c){if(c>='a') return c-'a'+26;else return c-'A';}//void print(int x){if(x<26) putchar(x+'A');else putchar(x-26+'a');}int de[N],g[N][N];int vis[N][N],st[N*N],top=0;void dfs(int u){ for(int i=0;i

 

转载于:https://www.cnblogs.com/candy99/p/6055930.html

你可能感兴趣的文章
JS闭包理解
查看>>
整数对题目
查看>>
php设计模式-观察者模式
查看>>
NFC技术:使用Android Beam技术传输文本(一)
查看>>
C++判断一个文件是否可以正确打开的代码
查看>>
unity 判断 是手机还是平板
查看>>
VisualStudio2015单步调试
查看>>
【进程资源】监视进程资源
查看>>
团队成员效绩评定
查看>>
【數據結構】哈工大實驗一:一元多项式(代碼以及報告)
查看>>
(转)spring boot注解 --@EnableAsync 异步调用
查看>>
简单理解Socket
查看>>
Hortonworks HDP Sandbox定制(配置)开机启动服务(组件)
查看>>
DHCP Option 60 认识
查看>>
浅析连续子向量,子数组和(一维,二维)问题
查看>>
C/C++中各种类型int、long、double、char表示范围(最大最小值)
查看>>
Linux环境下Eclipse + Tomcat + MySQL 配置J2EE开发环境的方法
查看>>
机器学习实战:第九章 树回归
查看>>
while(~scanf("%d %d",&a,&b))和while(scanf("%d %d",&a,&b)!=EOF)
查看>>
使用vs code开发纸壳CMS并启用Razor智能提示
查看>>