Codeforces Round #290 (Div. 2) C. Fox And Names

news/2024/4/26 19:52:15/文章来源:https://blog.csdn.net/weixin_63555280/article/details/128107478

翻译:

Fox Ciel将发表一篇关于FOCS (Fox操作的计算机系统,发音:“Fox”)的论文。她听到一个谣言:报纸上的作者名单总是按照词典顺序排列的。

在查看了一些例子后,她发现有时这不是真的。在一些论文中,作者的名字没有按照正常意义上的词典顺序排序。但是,在对字母表中字母的顺序进行了一些修改之后,作者的顺序就变成了字典编纂者的顺序。

她想知道,在拉丁字母表中是否存在一种字母顺序,使得她提交的论文上的名字是按照字典顺序排列的。如果是这样,你应该找到任何这样的订单。

字典顺序的定义如下。当我们比较s和t时,首先我们找到最左边的位置具有不同的字符:si≠ti。如果没有这样的位置(即s是t的前缀,反之亦然),则最短的字符串更小。否则,我们比较字符si和ti根据它们在字母表中的顺序。

输入
第一行为整数n(1≤n≤100):名称个数。

下面n行的每一行都包含一个字符串namei(1≤|namei|≤100),即第i个名称。每个名字只包含小写的拉丁字母。所有的名字都不一样。

输出
如果存在这样的字母顺序,给定的名字是按字典顺序排列的,输出任何这样的顺序作为字符'a' - 'z'的排列(即首先输出修改后的字母表的第一个字母,然后输出第二个字母,依此类推)。

否则输出一个单词“Impossible”(不带引号)。

例子
inputCopy
3.
里维斯特
沙密
期刊
outputCopy
bcdefghijklmnopqrsatuvwxyz
inputCopy
10
旅游
切赫
wjmzbmr
yeputons
vepifanov
scottwu
oooooooooooooooo
订阅者
rowdark
tankengineer
outputCopy
不可能的
inputCopy
10
切赫
egor
endagorion
feferivan
ilovetanyaromanova
kostka
dmitriyh
maratsnowbear
bredorjaguarturnik
cgyforever
outputCopy
aghjlnopefikdmbcqrstuvwxyz
inputCopy
7

护理
小心
小心翼翼地
becarefuldontforgetsomething
otherwiseyouwillbehacked
古德勒克
outputCopy
acbdefhijklmnogpqrstuvwxyz

思路:

因为每个人名字都是字典序排序,所以我们用这个可以来每次确定两个字母的关系,然后二维数组标记,之后dfs,如果有两个相同的字母相互前后标记,那么就是不可能,可能的话就用字典树来记录一下。

代码:

#include <iostream>
#include <algorithm>
#include <string.h>
#include <string>
#include <math.h>
#include <stdio.h>
#include<vector>
#include<queue>
#include<stack>
#include<map>
#include<set>
#include<tuple>
#include<numeric>
using namespace::std;
typedef long long  ll;
inline __int128 read(){__int128 x = 0, f = 1;char ch = getchar();while(ch < '0' || ch > '9'){if(ch == '-')f = -1;ch = getchar();}while(ch >= '0' && ch <= '9'){x = x * 10 + ch - '0';ch = getchar();}return x * f;
}
inline void print(__int128 x){if(x < 0){putchar('-');x = -x;}if(x > 9)print(x / 10);putchar(x % 10 + '0');
}
int n;
int tree[27][27];
int bj[27];
string a,b,ss;
int lls=0;
void dfs(int x){if (lls==1) {return;}bj[x]=1;for (int i =0; i<27; i++) {if (lls==1) {return;}if (tree[x][i]) {if (bj[i]==1) {cout<<"Impossible\n";lls=1;return;}if (bj[i]!=2) {dfs(i);if (lls==1) {return;}}}}bj[x]=2;if (x+'a'<='z') {ss+=(x+'a');}//    cout<<ss<<endl;
}
int main(){ios::sync_with_stdio(false);cin.tie(); cout.tie();ss="";cin>>n;cin>>a;
//    cout<<a<<endl;for (int i =1; i<n; i++) {bool kl=false;cin>>b;
//        cout<<b<<endl;for (int j = 0; j<min(a.size(),b.size()); j++) {if (a[j]!=b[j]) {tree[b[j]-'a'][a[j]-'a']=1;kl=true;break;}}if (!kl&&a.size()>b.size()) {cout<<"Impossible\n";return 0;}a=b;}for (int i = 0; i<27; i++) {if (bj[i]!=2) {dfs(i);if (lls) {return 0;}}}cout<<ss<<"\n";return 0;
}

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

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

相关文章

干货 | 提前在开发阶段暴露代码问题,携程Alchemy代码质量平台

作者简介Lyan&#xff0c;携程资深后端开发工程师&#xff0c;负责自动化测试框架及平台类工具开发&#xff0c;关注Devops、研发效能领域。一、背景随着敏捷开发&#xff0c;DevOps开发模式的流行&#xff0c;代码质量分析作为研发质量保证体系的重要组成部分&#xff0c;不仅…

DCDC--Burst Mode和Pulse Skipping Mode

1、Burst Mode和Pulse Skipping Mode&#xff08;PSM&#xff09;的区别 Burst Mode ≠ Pulse Skipping Mode&#xff0c;论坛有人认为Burst Mode就是Pulse Skipping Mode&#xff0c;这是不对的。 以LTC3624为例&#xff1a; Burst Mode operation provides the highest ef…

(一)DepthAI-python相关接口:OAK Device

消息快播&#xff1a;OpenCV众筹了一款ROS2机器人rae&#xff0c;开源、功能强、上手简单。来瞅瞅~ 编辑&#xff1a;OAK中国 首发&#xff1a;oakchina.cn 喜欢的话&#xff0c;请多多&#x1f44d;⭐️✍ 内容可能会不定期更新&#xff0c;官网内容都是最新的&#xff0c;请查…

数据结构初阶--栈和队列(讲解+类模板实现)

栈的概念和结构 栈&#xff1a;一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶&#xff0c;另一端称为栈底。栈中的数据元素遵守后进先出LIFO&#xff08;Last In First Out&#xff09;加粗样式的原则。 入…

Redis数据结构和类型

Redis 包含五种数据类型&#xff0c;分别为String、List、Hash、Set、ZSet 底层实现的数据结构包SDS、双向链表、压缩列表、哈希表、整数集合、跳表 redis结构图数据类型和数据结构的关系Redis六种数据结构 一、动态字符串(SDS) Redis 是用 C 语言实现的&#xff0c;但是它…

在Word、WPS中插入AxMath公式导致行间距异常的解决办法

引言 我最近需要写一些文章&#xff0c;在排版时发现AxMath插入的公式竟然会导致行间距异常&#xff0c;如下图所示&#xff1a; 查遍互联网&#xff0c;最有效的办法竟然要取消文档网格对齐&#xff0c;这对于一些严格要求的场合是非常不利的&#xff0c;经过我的尝试&#…

SpringBoot3.0正式发布,我来尝尝鲜

GraalVM 版本&#xff1a;graalvm-ce-java17-22.3.0 SpringBoot3.0 中最重要的特性就是对 GraalVM 的支持&#xff0c;从而达到更快的启动速度&#xff0c;有两种使用方式。 利用 GraalVM 构建可执行文件 因为需要利用 GraalVM 来打包可执行文件&#xff0c;所以需要你的机器上…

Casein-PEG-Indocyanine green 络蛋白-聚乙二醇-吲哚菁绿 Casein-ICG

产品名称&#xff1a;络蛋白-聚乙二醇-吲哚菁绿 英文名称&#xff1a;Casein-PEG-Indocyanine green 质量控制&#xff1a;95% 原料分散系数PDI&#xff1a;≤1.05 存储条件&#xff1a;-20C&#xff0c;避光&#xff0c;避湿 用 途&#xff1a;仅供科研实验使用&#xff0c;…

Ansible 企业级自动化运维实战

一、Ansible 简介 如果Ansible不采用0mq(ZeroMQ),在操作1000个以下的节点性能还可以,如果操作1000个以上的节点,性能就很差。 目前来说Ansible支持local,ssh,0mq,Ansible用ssh来管理被管理主机是最常见的方法。 saltstack简称salt,默认采用0mq(ZeroMQ),支持数万…

TaWRKY19/61/82激活糖转运蛋白TaSTP3从而增强小麦条锈病敏感性

文章信息 题目&#xff1a;Sugar transporter TaSTP3 activation by TaWRKY19/61/82 enhances stripe rust susceptibility in wheat 刊名&#xff1a;New Phytologist 作者&#xff1a;Baoyu Huai&#xff0c;Zhensheng Kang,Jie Liu et al. 单位&#xff1a;Northwest A&…

麒麟信安携手河南IT联盟召开 《麒麟信安信创应用解决方案》线上分享会

在党政及金融、交通、能源等重要行业的信创应用步伐逐步加快的背景下&#xff0c;各行业均面临着不同程度的国产化落地难题。11月29日下午&#xff0c;麒麟信安与河南省信息协会IT产业分会&#xff08;河南IT联盟&#xff09;携手召开《麒麟信安信创应用解决方案》线上分享会&a…

ARM汇编之乘法指令

ARM汇编之乘法指令前言 首先&#xff0c;请问大家几个小小问题&#xff0c;你清楚&#xff1a; 乘法指令有哪些种类呢&#xff1f;ARM乘法指令具体的使用场景又有哪些&#xff1f; 今天&#xff0c;我们来一起探索并回答这些问题。为了便于大家理解&#xff0c;以下是本文的…

基础知识java

1.浅克隆和深克隆&#xff1f;深克隆的方法 浅克隆&#xff1a;对象的引用变量只会拷贝地址&#xff0c;不会新建一个对象 深克隆&#xff1a;对象的引用变量也会新建一个对象 实现方式&#xff1a; 浅克隆&#xff1a;实现cloneable接口的clone方法 深克隆&#xff1a;实现Ser…

西门子精彩触摸屏SMART V3组态报警的具体方法示例

西门子精彩触摸屏SMART V3组态报警的具体方法示例 用户自定义报警分为离散量报警和模拟量报警。 离散量报警:离散量对应于二进制数的1位,离散量的两种相反状态可以用1位二进制数的0、1状态来表示。例如:电动机的交流接触器的接通和断开、各种故障信号的出现和消失,都可以用…

flask入门教程之请求与响应

Flask是一个轻量级的web开发框架&#xff0c;依赖jinja2和Werkzeug WSGI服务的一个微型框架。 官方文档&#xff1a;https://flask.palletsprojects.com/en/2.0.x/ 中文文档&#xff1a;http://docs.jinkan.org/docs/flask/ 中文文档的版本会比较低&#xff0c;如果英语OK的话&…

22年-自研-面试题

目录背景题目Activiti回退功能条件分支功能&#xff0c;并行网关、包含网关有没有用到流程流转中&#xff0c;需知会其他人&#xff0c;这些人需同意/做处理&#xff08;有点流程的感觉&#xff09;&#xff0c;最后所有的意见都要汇总。你的实现思路Redis哪些数据结构&#xf…

【毕业设计】15-基于单片机的交通灯系统设计(原理图+仿真+论文)

【毕业设计】15-基于单片机的交通灯系统设计&#xff08;原理图、仿真、源代码工程答辩论文答辩PPT&#xff09; 文章目录【毕业设计】15-基于单片机的交通灯系统设计&#xff08;原理图、仿真、源代码工程答辩论文答辩PPT&#xff09;任务书设计说明书摘要设计框架架构设计说明…

【Rust日报】2022-11-29 Wirefish:基于 Tauri 的跨平台数据包嗅探器

Wirefish&#xff1a;基于 Tauri 的跨平台数据包嗅探器作者 stefanodevenuto 通过 Rust Tauri 实现&#xff0c;构建了一个类似 Wireshark 的跨平台数据包嗅探器。这个应用离生产阶段当然还很远&#xff0c;功能和页面上还有很多改善的空间&#xff0c;但是代码组织良好&#…

基于 Hive 的 Flutter 文档类型存储

基于 Hive 的 Flutter 文档类型存储 原文 https://medium.com/gytworkz/document-type-storage-in-flutter-using-hive-a18ea9659d84 前言 长久以来&#xff0c;我们一直使用共享首选项以键对格式在本地存储中存储数据&#xff0c;或者使用 SQLite 在 SQL 数据库中存储数据。 存…

【收藏】安科瑞企业微电网能效管理系统云平台演示账号

安科瑞 李亚俊 Acrel8757 1、AcrelCloud-1000变电所电力运维云平台 网址&#xff1a;https://acrelcloud.cn/ 演示账号&#xff1a;acrel 密码:123456 2、SCADA电力监控系统 网址&#xff1a;http://scada.acrel-eem.com/ 演示账号&#xff1a;acrel 密码:…