【POJ 1094】拓扑排序】的更多相关文章

题意:给N个字母,和M个偏序关系 求一个可确定的全序,可确定是指没有其他的可能例如A>B D>B 那么有ADB DAB两种,这就是不可确定的其中,M个偏序关系可以看做是一个一个按时间给出的,如果还没给完就已经满足条件了,后面的可以不用管 题解:拓扑水题,直接用拓扑排序暴力 其中 如果途中 冲突 那么即使后面添加了也不能改变冲突 如果前面成功了那就不用管后面了直接continue 其中拓扑判断的时候如果存在多个0度点 那么就不可确定 如果排序完比n个点少,那么确定不了一个全序,分类讨论 #inc…
Sorting It All Out 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 An ascending sorted sequence of distinct values is one in which some form of a less-than operator is used to order the elements from smallest to largest. For example, the sorted sequence A,…
Description:      规定对于一个只有大写字母的字符串是有大小顺序的.如ABCD.即A<B.B<C.C<D.那么问题来了.现在第一行给你n, m代表序列里只会出现前n的大写字母.以后的第2到m行给你m组.有三个字符.即“第一个字符” “<”"第二个字符"...请你给出答案.在第几组之后确定了排列顺序或者第几组之后出现矛盾.还是直到输入结束也没有排列顺序也没有出现矛盾. 思路很简单.就是把前n个字符转换成0~n-1的数字.然后,,每次输入都要拓扑一次…
http://poj.org/problem?id=3687 题意:有一些球他们都有各自的重量,而且每个球的重量都不相同,现在,要给这些球贴标签.如果这些球没有限定条件说是哪个比哪个轻的话,那么默认的前面比后的要请,而且这n个球的重量也正好是分布在1-n这个范围内,现在要你求出他们各自所占的重量. 思路:最开始,我也是想到了用拓扑排序,但是它的入度值我确定不了,然后去看discuss,里面说对每个判断条件反向建图,然后在用最大优先队列.我不理解这是什么意思.然后看了下别人的博客,模拟了一下大概的…
貌似是道水题.TLE了几次.把所有的输入输出改成scanf 和 printf ,有吧队列改成了数组模拟.然后就AC 了.2333333.... Description: MR.DOG 在找工作的过程中呢.遇见了这样一个问题.有n个城市,m条小道.然后要从入度为0的点出发,出度为0的点结束,中途经过的城市呢,都是要付费的.负数表示花费.正数表示收益.然后让你求收益最大或者说花费最少的总值. 貌似.BFS和DFS都会超时.不妨一试.附代码: #include<stdio.h>#include<…
思路:我们首先来一遍拓扑排序,将点按先后顺序排列于一维数组中,然后扫描一遍数组,将每个点的出边所连接的点进行更新,即可得到最优解. #include<iostream> #include<cstdio> #include<cstring> #include<queue> #include<algorithm> #define inf 2000000010 #define Maxn 100010 #define Maxm 1000010 using…
这题主要在于建图.对9个2*2的小块,第i块如果出现了不等于i的数字,那么一定是在i之后被brought的.可以从i到该数字建一条边. 图建好后,进行一次拓扑排序,判段是否存在环.若存在环,那么就是BROKEN,否则是CLEAN. #include<iostream> #include<cstdio> #include<cstring> #define Maxn 102 #define Maxm 10010 using namespace std; ]; int Top…
题目链接:http://poj.org/problem?id=3687 题意:n个重量为1~n的球,给定一些编号间的重量比较关系,现在给每个球编号,在符合条件的前提下使得编号小的球重量小.(先保证1号球最轻,其次2号……) 如果从前扫的话,当遇到入度为0的点,却不一定是1,这里,我参考了金海峰的分析,从重的开始扫,给最重的附上n,n-1... ...,再去掉重的点连的边. #include <stdio.h> #include <string.h> #define MAXN 205…
/* (⊙v⊙)嗯 貌似是一个建图 拓扑+深搜的过程.至于为什么要深搜嘛..一个月前敲得题现在全部推了重敲,于是明白了.因为题意要求如果有多个可能的解的话. * 就要输出字典序最小的那个.所以可以对26个英文字母从小到大尝试能否排出结果.于是出现了 深搜回溯.先选定入度为0的边框.标记为已用.将所有与它连通的 * 边框入度减一.然后递归搜索下一个.此时开始回溯.当前边框标记为未用,所有与它连通的边框入度加1. * 建图的过程则是.对每一个字母的边框测量出来.然后对A里的其它字母B.(B 覆盖 A…
Description The system of Martians' blood relations is confusing enough. Actually, Martians bud when they want and where they want. They gather together in different groups, so that a Martian can have one parent as well as ten. Nobody will be surpris…