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

news2024/11/23 7:21:44

翻译:

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.coloradmin.cn/o/47709.html

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

相关文章

【无人机】四轴无人机的轨迹进行可视化和动画处理(Matlab代码实现)

&#x1f4cb;&#x1f4cb;&#x1f4cb;本文目录如下&#xff1a;⛳️⛳️⛳️ ​ 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现 1 概述 随着传感器检测技术、智能控制技术和材料技术的快速发展,四轴无人机及其配套系统的发展越来越成熟。无人机遥感系统具有成本低、…

Java数据结构之Map与Set

文章目录一、搜索&#xff08;一&#xff09;概念及场景&#xff08;二&#xff09;模型二、Map&#xff08;一&#xff09;介绍&#xff08;二&#xff09;Map常用方法说明1.需要注意的几个点2.特别注意的几个方法(1)V getOrdefault(Object key,V defaultValue)&#xff0c;这…

【DL with Pytorch】第 5 章 :风格迁移

&#x1f50e;大家好&#xff0c;我是Sonhhxg_柒&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流&#x1f50e; &#x1f4dd;个人主页&#xff0d;Sonhhxg_柒的博客_CSDN博客 &#x1f4c3; &#x1f381;欢迎各位→点赞…

[JavaEE]计算机是如何工作的

专栏简介: JavaEE从入门到进阶 题目来源: leetcode,牛客,剑指offer. 创作目标: 记录学习JavaEE学习历程 希望在提升自己的同时,帮助他人,,与大家一起共同进步,互相成长. 学历代表过去,能力代表现在,学习能力代表未来! 目录 1. javaEE概述 2. 计算机发展史 3. 冯诺依曼体系 …

java面试强基(15)

说明一下public static void main(String args[])这段声明里每个关键字的作用? ​ public: main方法是Java程序运行时调用的第一个方法&#xff0c;因此它必须对Java环境可见。所以可见性设置为 pulic. ​ static: Java平台调用这个方法时不会创建这个类的一个实例&#xf…

如何将带GPS的网络化的软件定义无线电接收机应用于分布式和移动频谱监测?(二)

GPS定位和测向的四种技术 知道感兴趣信号的位置对于许多应用很重要。军事用户获得了更好的态势感知能力&#xff0c;诸如机场或公用事业基础设施之类的敏感设施可以找到RF干扰源&#xff0c;电信公司可以识别恶意发射机或其他干扰其覆盖范围的设备。通过嵌入式GPS功能了解测量…

中国什么时候能办世界杯?

自从1930年在乌拉圭举办了第一届世界杯以来&#xff0c;到现在已经成功举办了22届&#xff0c;然而这22届里&#xff0c;光是欧洲就举办了11届&#xff0c;南美洲5届&#xff0c;中北美洲3届&#xff0c;亚洲2届&#xff0c;非洲1届。 说到这里不难发现&#xff0c;他们之间分布…

Azure DevOps Server 用户组加入 Azure AD Domain Service 管理用户

一&#xff0c;引言 今天我们继续讲解 Azure DevOps Server 的内容&#xff0c;对于管理用户组除了在 Azure DevOps Server 服务器上添加管理员方式外&#xff0c;还有没有其他方式&#xff0c;Azure DevOps 需要加入Azure ADDS 服务域后&#xff0c;Azure DevOps Server 的管理…

[附源码]计算机毕业设计springboot基于vue+mysql开发的考试系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

图扑软件荣获第七届“创客中国”中小企业创新创业大赛优胜奖!

2022 年 11 月 17 日&#xff0c;由工业和信息化部、财政部共同主办的第七届“创客中国”中小企业创新创业大赛全国总决赛在浙江杭州落下帷幕。 本次《第七届“创客中国”中小企业创新创业大赛》举办目的&#xff0c;意在加大优质中小企业梯度培育力度&#xff0c;进一步提升中…

ProcessDB实时/时序数据库——ODBC之连接数据库

目录 前言 一、安装ProcessDB-ODBC驱动 1.下载ProcessDB-ODBC驱动 2.安装ProcessDB-ODBC驱动 二、配置ProcessDB数据源 三、JAVA连接ProcessDB数据库 前言 ProcessDB实时/时序数据库支持ODBC连接数据库&#xff0c;接下来将和大家分享下如何使用ODBC操作ProcessDB实时/时…

Java基础之《netty(5)—NIO之Selector》

一、基本介绍 1、Java的NIO&#xff0c;用非阻塞的IO方式&#xff0c;可以用一个线程&#xff0c;处理多个的客户端连接&#xff0c;就会使用到Selector&#xff08;选择器&#xff09;。 2、Selector能够检测多个注册的通道上是否有事件发生&#xff08;注意&#xff1a;多个…

[附源码]SSM计算机毕业设计新闻发布和评论管理系统JAVA

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

【冰糖Python】Python 中的 assert 语句

assert 判断一个表达式的真假&#xff0c;在表达式条件为 false 的时候触发异常&#xff0c;返回错误 具体用法&#xff1a; assert expression assert expression [, arguments] 实际用例&#xff1a; 注意以上使用&#xff1a; 1、条件为True时&#xff0c;assert不执行…

基于PHP+MySQL高校教务选课系统的设计与实现

兴趣是最好的老师,只有学生选择了自己感兴趣的课程才能够更好的进行学习,目前有很多高校的选课中出现很多问题,如学生对开设的课程不了解,代选课程等等,这些问题多而繁杂,不容易解决。 本系统就是为了学生开放的在线选课系统,而网络选课系统是帮助学生了解到所学课程的内容,多自…

Android——使用ContentProvider共享数据

实验名称&#xff1a; 使用ContentProvider共享数据 实验目的&#xff1a; &#xff08;1&#xff09;能使用ContentProvider共享数据 &#xff08;2&#xff09;能使用内容观察者观察其他程序的数据变化 实验内容及原理&…

H2N-Hyp-FF-OH, 2493080-84-3

Hyp-Phe-Phe 是一种三肽&#xff0c;通过 Phe 环的芳香相互作用形成螺旋状的薄片&#xff0c;构成一个交叉螺旋结构。Hyp-Phe-Phe 具有很高的剪切压电特性&#xff0c;可作为一种压电材料。Hyp-Phe-Phe is a tripeptide that forms helical-like sheets via aromatic interacti…

Flowable定时器与实时流程图江南一点雨

1. 定时器 1.1. 流程定义定时激活 在之前松哥给小伙伴们介绍流程定义的时候&#xff0c;流程都是定义好之后立马就激活了&#xff0c;其实在流程定义的这个过程中&#xff0c;我们还可以设置一个激活时间&#xff0c;也就是流程定义好之后&#xff0c;并不会立马激活&#xf…

数据存储——存储视频

数据存储——存储视频视频的数字化一、视频采样二、视频量化总结&#xff1a;视频数字化的过程视频的数字化 1.视频是图像&#xff08;帧&#xff09;在时间上的表示 图象是离散的视频&#xff0c;视频是连续的图像 2.视频储存 每一帧图像或帧被转化为位模式并加以储存 一、视…

(3)点云数据处理学习——KD树近邻搜索

1、主要参考资料 &#xff08;1&#xff09;kd树原理 数组索引的kdtree建立及简明快速的k近邻搜索方法 &#xff08;2&#xff09;open3d 爆肝5万字 Open3D 点云数据处理基础&#xff08;Python版&#xff09;&#xff09;-技术圈 (3)视频参考 【PythonOpen3D处理点云数据…