【uva-200】Rare Order(拓扑排序过的第一道)
来源:互联网 发布:淘宝网怎么修改差评 编辑:程序博客网 时间:2024/06/05 19:42
题目大意:
输入一堆按新的字母排序从小到大排好的字符串,#作为结束。
求新的字母排序规则。
思路:
不知道一共多少组所以两个两个比较咯。
注意dfs第一个得到的是最小的字母。
是反序的要用stack倒着输出。
/* uva 200 by zhuhua Time limit: 3000 ms AC Time: 0 ms???*/#include <iostream>#include <string>#include <cstring>#include <algorithm>#include <vector>#include <stack>#include <map>using namespace std;vector <int> C[30];vector <int> tot;stack <int> output;bool visit[30];bool exist[30];void doit(string s1,string s2){ int len1,len2,len; int x,y; len1=s1.length(); len2=s2.length(); len=min(len1,len2); for(int i=0;i<len;i++) { if(s1[i]!=s2[i]) { x=s1[i]-'A'; y=s2[i]-'A'; C[x].push_back(y); if(!exist[x]) {tot.push_back(x);exist[x]=true;} if(!exist[y]) {tot.push_back(y);exist[y]=true;} break; } }}void dfs(int x){ visit[x]=true; for(int i=0;i<C[x].size();i++) { int next=C[x][i]; if(!visit[next]) dfs(next); } output.push(x);}int main(){ int i=0; while(i<26) {C[i].clear();i++;} tot.clear(); while(!output.empty()) output.pop(); memset(visit,0,sizeof(visit)); memset(exist,0,sizeof(exist)); string strpre,str; cin>>strpre; if(strpre=="#")return 0; while(cin>>str) { if(str=="#")break; doit(strpre,str); strpre=str; } for(int i=0;i<tot.size();i++) { int now=tot[i]; if(!visit[now]) { dfs(now); } } while(!output.empty()) { char out=output.top()+'A'; cout<<out; output.pop(); }cout<<endl; return 0;}
阅读全文
0 0
- 【uva-200】Rare Order(拓扑排序过的第一道)
- uva 200 Rare Order (拓扑排序)
- UVa:200 Rare Order(拓扑排序)
- UVa 200 Rare Order (拓扑排序)
- uva 200 Rare Order 拓扑排序
- UVa 200 - Rare Order
- ACM UVa 算法题 #200 - Rare Order的解法
- ACM UVa 算法题 #200 - Rare Order的解法
- UVA 196 一道好玩的输入处理+拓扑排序题
- 拓扑排序的一道题
- hau 1825 第一道拓扑排序题
- uva 200拓扑排序
- 【uva-10305】Ordering Tasks (拓扑排序中最简单的一道
- 拓扑排序的一道水题
- UVALive 6467 Strahler Order(拓扑排序)
- LA 5139 Rare Order
- 【uva-196】Spreadsheet (拓扑排序)妈呀居然过了
- UVA - 1423 (大小关系的拓扑排序)
- 集合类,Collection,List
- 【uva-10305】Ordering Tasks (拓扑排序中最简单的一道
- 完美解决Android Studio在gradle上的各种问题
- Ubuntu 17.04 安装Hadoop 3.0.0-beta1
- 数据库的三大范式
- 【uva-200】Rare Order(拓扑排序过的第一道)
- 62. Unique Paths
- 一些UiAutomator测试时出现的问题
- Matlab常用数据类型(一)
- macOS系统 安装MySQL-python驱动方法
- Java编程思想第四版第五章练习
- asyncio
- 学术搜索,Web Of Science 核心合集检索方法,SCI分区情况查看方法
- hdu 2544