拓扑排序 病毒virus
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int f[125],n,s,k,t,in[125],num,top[125][30],minn,m,r[125];
char c[5005],dic[50005][505],z[30],now,zd[30];
int main()
{freopen("virus.in","r",stdin);freopen("virus.out","w",stdout);scanf("%d",&n);for (int i=1;i<=n;i++){scanf("%s",dic[i]);if (i>1){ int len1=strlen(dic[i-1]),len2=strlen(dic[i]);for (int t=0; t<=min(len1,len2)-1;t++)//直到两个字符串中较短的那个结束为止 因为不能将空字符和字母连起来 {if (dic[i][t]!=dic[i-1][t]){top[dic[i-1][t]][++top[dic[i-1][t]][0]]=dic[i][t];in[dic[i][t]]++;break;//不要忘记break,每次只取一个字母 }}}for (int j=0;j<strlen(dic[i]);j++){f[dic[i][j]]++;if (f[dic[i][j]]==1) zd[++num]=dic[i][j];//统计共出现了多少不重复的字母 zd保存 }}scanf("%s",c); t=0;memset(f,0,sizeof(f));//上面的f是用来保存字母出现的次数 下面的f用来判断字母是否用过 while (s<num){int ss=0;for (int i=1;i<=num;i++)if (in[zd[i]]==0){ss++; s++; z[++t]=zd[i];in[zd[i]]=0x7fffffff;}if (ss!=1) {printf("0"); return 0;}//每一轮只能有且只有一个入度为0的点,即拓扑序列是唯一的 while (t!=0){now=z[t--];//取出栈顶元素 栈顶向下移 r[now]=++m;//r保存该字母的序号 for (int i=1;i<=top[now][0];i++)in[top[now][i]]--;//去掉相连的边 }}sort(zd+1,zd+num+1);//使zd变成字典序 for (int i=0;i<strlen(c);i++)if (c[i]>zd[num]||c[i]<zd[1]) {printf("0");return 0;}//这里默认所给单词中所有出现的字母都是连续的 若需要翻译的字符串中出现比范围内字母大或小的则字典不完整 for (int i=0;i<strlen(c);i++)printf("%c",zd[r[c[i]]]);fclose(stdin); fclose(stdout);return 0;
}
拓扑排序 病毒virus相关推荐
- 病毒virus(拓扑排序)
~目录啊~ 题目 思路 Code 题目 描述 有一天,小y突然发现自己的计算机感染了一种病毒!还好,小y发现这种病毒很弱,只是会把文档中的所有字母替换成其它字母,但并不改变顺序,也不会增加和删除字母. ...
- 病毒(virus) 题解 - 拓扑排序
题目 有一天,小y突然发现自己的计算机感染了一种病毒!还好,小y发现这种病毒很弱,只是会把文档中的所有字母替换成其它字母,但并不改变顺序,也不会增加和删除字母. 现在怎么恢复原来的文档呢!小y很聪明, ...
- 【BZOJ-2938】病毒 Trie图 + 拓扑排序
2938: [Poi2000]病毒 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 609 Solved: 318 [Submit][Status][ ...
- 题解报告:hihoCoder #1175:拓扑排序·二
题目链接:https://hihocoder.com/problemset/problem/1175 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho所在学 ...
- 病毒 (virus)
病毒 (virus) 题目描述 题目描述 有一天,小y 突然发现自己的计算机感染了一种病毒! 还好,小y 发现这种病毒很弱,只是会把文档中的所有字母替换成其它字母,但并不改变顺序,也不会增加和删除字母 ...
- HihoCoder - 1175 拓扑排序·二
描述 小Hi和小Ho所在学校的校园网被黑客入侵并投放了病毒.这事在校内BBS上立刻引起了大家的讨论,当然小Hi和小Ho也参与到了其中.从大家各自了解的情况中,小Hi和小Ho整理得到了以下的信息: 校园 ...
- hihoCoder 1175 拓扑排序
hihoCoder 1175 拓扑排序 描述 小Hi和小Ho所在学校的校园网被黑客入侵并投放了病毒.这事在校内BBS上立刻引起了大家的讨论,当然小Hi和小Ho也参与到了其中.从大家各自了解的情况中,小 ...
- 图论 —— AOV 网与拓扑排序
[AOV网] 日常生活中,一项大的工程可以看作是由若干个子工程组成的集合,这些子工程之间必定存在一定的先后顺序,即某些子工程必须在其他的一些子工程完成后才能开始. 我们用有向图来表现子工程之间的先后关 ...
- 【图论】有向无环图的拓扑排序
1. 引言 有向无环图(Directed Acyclic Graph, DAG)是有向图的一种,字面意思的理解就是图中没有环.常常被用来表示事件之间的驱动依赖关系,管理任务之间的调度.拓扑排序是对DA ...
最新文章
- 一作解读Gut:人体最初的微生物起源与生殖健康
- java二次封装_基于OKhttp+Rxjava2+Retrofit进行二次封装
- 用VS2012或VS2013在win7下编写的程序在XP下运行就出现“不是有效的win32应用程序
- 50行代码串行Promise,koa洋葱模型原来这么有趣?
- LeetCode 463. Island Perimeter
- 打开windows批处理大门
- 带透明png转换成c数组
- windows server 2008配置之AD域服务器 2
- Android 存储学习之使用SharedPreference保存文件
- 软件开发人月成本估算方法
- 怎样用matlab画斜条纹图案,CorelDRAW制作简单的均匀倾斜条纹
- 第十二周助教心得体会
- 【python与excel】
- 2万字 + 50 张图,细说 JVM 内存分布、内存对齐、压缩指针
- 猜猜我是谁(猜数游戏)
- 概率图模型(PGM)综述-by MIT 林达华博士
- android修改checkbox样式边框颜色
- JavaScript(JS)的DOM对象(JS的Document对象)----什么是DOM对象?
- 全国IT公司红黑榜排名(更新时间11月8日)
- 大咖养成记 一个拥有66万粉丝的自媒体