510C
510C
拓扑排序:将那些受影响的字母拓扑排序,其后的输出
#include<iostream>
#include<cstdio>
#include<vector>
#include<queue>
#include<algorithm>
#include<cstring>
using namespace std;
queue<int>q;
int n;
vector<int>graph[];
string s[];
int mp[][];
int in[];
void toposort()
{
for(int i=;i<;i++)
if(!in[i])
{cout<<(char)(i+'a');q.push(i);}
// if(!flag){cout<<"Impossible"<<endl;return;}
while(!q.empty())
{
int u=q.front();q.pop();
for(int i=;i<graph[u].size();i++)
{
int v=graph[u][i];
in[v]--;
if(in[v]==){cout<<(char)(v+'a');q.push(v);}
}
}
for(int i=;i<;i++) if(in[i]==-)cout<<(char)(i+'a');
}
int main()
{
cin>>n;
if(n==){for(char c='a';c<='z';c++) cout<<c;return ;}
for(int i=;i<=n;i++)
cin>>s[i];
memset(in,-,sizeof(in));
for(int i=n;i>=;i--)for(int j=i-;j>=;j--)
{
int l=;
while(s[i][l]==s[j][l]&&l<=min(s[i].length(),s[j].length())) l++;
if(l==s[i].length())
{
cout<<"Impossible"<<endl;
return ;
}
if(l==s[j].length())continue;
mp[s[i][l]-'a'][s[j][l]-'a']=;
if(in[s[j][l]-'a']==-)in[s[j][l]-'a']=;
in[s[i][l]-'a']+=in[s[i][l]-'a']==-?:;
graph[s[j][l]-'a'].push_back(s[i][l]-'a');
}
for(int k=;k<;k++)
for(int i=;i<;i++)
for(int j=;j<;j++)
mp[i][j]+=mp[i][k]*mp[k][j];
for(int i=;i<;i++)
if(mp[i][i]){cout<<"Impossible"<<endl;return ;}
toposort();
return ;
}
510C的更多相关文章
- (CodeForces 510C) Fox And Names 拓扑排序
题目链接:http://codeforces.com/problemset/problem/510/C Fox Ciel is going to publish a paper on FOCS (Fo ...
- CodeForces 510C Fox And Names (拓扑排序)
<题目链接> 题目大意: 给你一些只由小写字母组成的字符串,现在按一定顺序给出这些字符串,问你怎样从重排字典序,使得这些字符串按字典序排序后的顺序如题目所给的顺序相同. 解题分析:本题想到 ...
- codeforce 510C Fox And Names(拓扑排序)
Fox And Names time limit per test 2 seconds memory limit per test 256 megabytes input standard input ...
- 【codeforces 510C】Fox And Names
[题目链接]:http://codeforces.com/contest/510/problem/C [题意] 给你n个字符串; 问你要怎么修改字典序; (即原本是a,b,c..z现在你可以修改每个字 ...
- Codeforces 510C (拓扑排序)
原题:http://codeforces.com/problemset/problem/510/C C. Fox And Names time limit per test:2 seconds mem ...
- Linux下多任务间通信和同步-信号
Linux下多任务间通信和同步-信号 嵌入式开发交流群280352802,欢迎加入! 1.概述 信号是在软件层次上对中断机制的一种模拟,是一种异步通信方式.信号可以直接进行用户空间进程和内核进程之间的 ...
- Codeforces510 C. Fox And Names
Codeforces题号:#510C 出处: Codeforces 主要算法:判环+拓扑 难度:4.2 思路分析: 要是把这道题联系到图上就很容易想了. 如何建图?由于最后要求名字满足字典序,所以不妨 ...
- 专题:CF图论杂题
题目是来自HZW的博客(构造题我是各种不会...) Solved 1 / 1 A CodeForces 500A New Year Transportation Solved 1 / 1 B Code ...
- 【操作系统】总结五(I/O管理)
输入输出管理本章主要内容: I/O管理概述(I/O控制方式.I/O软件层次结构)和I/O核心子系统(I/O调度概念.局速缓存与缓冲区.设备分配与回收.假脱机技术(SPOOLing)). 5.1 I/O ...
随机推荐
- AC日记——基因相关性 openjudge 1.7 03
03:基因相关性 总时间限制: 1000ms 内存限制: 65536kB 描述 为了获知基因序列在功能和结构上的相似性,经常需要将几条不同序列的DNA进行比对,以判断该比对的DNA是否具有相关性 ...
- 在Eclipse彻底删除一个项目
1. 先必须关闭项目 2. 再从workspace中把项目删除
- 阿里云消息队列MQ_HTTP接入 for .NetCore 简单例子
, , )).TotalMilliseconds; , , )).TotalMilliseconds; ) ...
- TP框架中用tp模版迁移smarty模版的注意事项
ThinkPHP使用Smarty模板引擎的流程及注意事项在多人合作的项目中,Smarty模板使用的最多,具体原因百度. 而ThinkPHP中默认使用的模板是Think自己的模板,这就需要修改默认的模板 ...
- 布局 - panel
panel一般作为其他组件的容器使用 很多组件都继承自panel 对于面板中的内容,支持异步从后台加载,当然,作为纯粹的面板,一般不会用到这个,但他的子类对于这个功能还是蛮实用的 <%@ tag ...
- 使用spring boot+mybatis+mysql 构建RESTful Service
开发目标 开发两个RESTful Service Method Url Description GET /article/findAll POST /article/insert 主要使用到的技术 j ...
- addShutdownHook的用法
addShutdownHook作为一个正常关闭Java程序的途径,其实是非常有用的. 有JDK文档可知,当程序正常退出,或者为响应用户中断而终止虚拟机的时候,就会调用里面的线程,来作最后的退出处理. ...
- JavaScript系列:正则表达式
function testExecResultType() { var txt = "mom and dad and baby"; var pattern = /mom (and ...
- realmswift的使用
官网:https://realm.io/ 1.说下数据库迁移的问题: 在func application(application: UIApplication, didFinishLaunchingW ...
- 树莓派Odroid等卡片式电脑上搭建NAS教程系列5-Samba服务器安装
本文章首发于浩瀚先森博客,地址: http://www.guohao1206.com/2016/08/23/967.html samba时一款为了实现linux系统中的文件能在windows系统中正常 ...