poj 1270(dfs+拓扑排序)】的更多相关文章

题目链接:http://poj.org/problem?id=1270 思路:就是一简单的dfs+拓扑排序,然后就是按字典序输出所有的情况. http://paste.ubuntu.com/5987294/…
题意:作为年度优秀魔法学员的奖赏,哈利得到了一台具有魔力的计算机.这台计算机一旦开始处理某个任务,就会一直处理到这个任务结束为止(所以你可以认为它是单线程的).有一天,这台计算机得到了n个任务要处理,分别标号1到n.这n个任务之间又有一些依赖关系,假如存在依赖关系(a, b),那么要处理a任务,必须先将b任务完成.现在哈利得到了所有的这些依赖关系,一共m个.他想知道,这台计算机能否完成所有的任务. 思路:一开始是判断该图中是否存在环,但是WA,换成拓扑排序,A了; #include <iostr…
题目链接:http://poj.org/problem?id=2367 题意: 知道一个数n, 然后n行,编号1到n, 每行输入几个数,该行的编号排在这几个数前面,输出一种符合要求的编号名次排序. 拓扑排序: 先找入度为0的点,再根据这个点删掉与之相连的点之间的弧,入度减一. #include <stdio.h> ][]; ]; int main() { int n; scanf("%d",&n); ;i<=n;i++) { int to; while(sca…
HDU3342 Legal or Not 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3342 题目意思:一群大牛互相问问题,大牛有不会的,会被更厉害的大牛解答,更厉害的大牛是会的东西比大牛多,但是有的时候更厉害的大牛会装弱,出来问问题,这样就被大牛解答了.这样就形成了一个圈.题目的意思就是让你在一个有向图里面判断是否存在环.我们可以通过dfs和拓扑排序两种方法. DFS的代码: //Author: xiaowuga #include <bits…
Priest John's Busiest Day Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 11127   Accepted: 3785   Special Judge Description John is the only priest in his town. September 1st is the John's busiest day in a year because there is an old l…
http://poj.org/problem?id=1094 题意:给你m个字母,有n个判断语句.求在哪个语句就可以判断出这个是不是一个环,或者在哪个语句可以判断出这些字母的排序规则,或者就是不能确定. 思路:每输入一次,进行一次排序,看会不会构成环或者已经可以确定了判断规则. #include <stdio.h> #include <string.h> ]; ]; ][]; int topsort(int n) { ,tmp[],l=; ;i<n;i++) tmp[i]=i…
题意 给出n,代表有以A开始的n个字母,给出它们的m个小于关系(A<B).如果前i个关系可以确定n个字母的一个顺序就输出: Sorted sequence determined after i relations: 排好的字母. 如果前i个关系开始导致矛盾,就输出: Inconsistency found after i relations. m个关系后还不能确定顺序就输出: Sorted sequence cannot be determined. 代码 /* g[i][j]为邻接矩阵,e[i…
评分稍微有一点过分..不过这个题目确确实实很厉害,对思维训练也非常有帮助. 按照套路,我们把矩阵中的子段和化为前缀和相减的形式.题目就变成了给定一些前缀和之间的大小关系,让你构造一组可行的数据.这个东西显然是传递闭包,但是如果仅仅传递闭包的话我们只能询问两两之间的关系,处理起来比较麻烦.有没有什么办法获取一个完整的顺序序列出来呢?显然是做一个拓扑排序就好啦~ 但是问题来了.如果没有相等一切好说,现在有相等该咋玩? 注意到题目保证一定有一组可行解,我们可以先不表示相等的关系.(如果把\(<=\)的…
题意:每组数据给出两行,第一行给出变量,第二行给出约束关系,每个约束包含两个变量x,y,表示x<y.    要求:当x<y时,x排在y前面.让你输出所有满足该约束的有序集. 思路:用拓扑排序,dfs枚举即可,为简便起见,这里将字符变量转化为整型值存储. #include <iostream> #include <stdio.h> #include <string> #include <cstring> #include <algorithm…
http://poj.org/problem?id=1270 题目大意: 给你一串序列,然后再给你他们部分的大小,要求你输出他们从小到大的所有排列. 如a b f g 然后 a<b ,b< f 那么符合要求的有abfg   abgf    agbf  gabf(即不能出现(a在b后面,b在f后面) 思路: 把这些字符看成点,如果存在a<b的关系,则在有向图中建立一条边 v(a,b),然后进行拓扑排序. 话说这题的输入很坑爹,那个大小关系的我还以为是4个一组..结果被坑死了.看了discu…