拓扑排序算法的基本思路:从AOV网中,选择一个入度为0的顶点输出,然后删除此顶点,并删除此顶点为弧尾的弧,继续重复此步骤,直到输出所有全部顶点或者AOV网中不存在入度为0(存在环)的顶点为止。...
分类:
编程语言 时间:
2014-11-14 00:15:37
阅读次数:
371
Rank of TetrisTime Limit: 1000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 5415Accepted Submission(s): 1514Prob...
分类:
编程语言 时间:
2014-11-13 10:50:15
阅读次数:
272
题意:给出一些字符串,默认所有字符间存在着某种偏序(如果输入满足时,为良序)关系,如{"free", "gbk", "atoi"},每一个字符串中排在前面的字符总是小于等于排在后面的字符。解题思路是把每一个字符串中任意两个相邻字符看做是 auxQueue = new java.util.Linked...
分类:
编程语言 时间:
2014-11-08 22:03:52
阅读次数:
366
题意就是拓扑排序,要求1的序号尽可能小,然后2的序号尽可能小,3,4...一开始很容易想到直接贪心,每次选一个入度为0的点,如果有多个,就选编号最小的那个,但是很容易找到反例。看了下题解,应该是反着做拓扑排序,每次取编号最大的,但是没有人给出证明。下面给出我的证明,欢迎指出错误。ps:参考了一位大牛...
分类:
其他好文 时间:
2014-11-08 18:10:53
阅读次数:
200
拓扑排序模板。 1 #include 2 #include 3 #include 4 using namespace std; 5 #define N 10001 6 vectorG[N]; 7 stackS; 8 int n,m,x,y,ru[N],tot; 9 int main()10 {11 ...
分类:
编程语言 时间:
2014-11-06 12:33:48
阅读次数:
232
题目地址:POJ 3683
第一次做需要输出可行解的题目。。。大体思路是先用强连通来判断是否有可行解,然后用逆序建图,用拓扑排序来进行染色,然后输出可行解。具体思路见传送门
因为判断的时候少写了一个等号。。检查了好长时间。。sad。。。
代码如下:
#include
#include
#include
#include
#include
#include
#include
#...
分类:
其他好文 时间:
2014-11-05 23:10:02
阅读次数:
218
定比赛名次Time Limit:1000MSMemory Limit:32768KB64bit IO Format:%I64d & %I64uSubmitStatusPracticeHDU 1285Description有N个比赛队(1#include#include#includeusing na...
分类:
编程语言 时间:
2014-11-04 19:31:07
阅读次数:
199
拓扑排序:
两个队列,一个放不需要重启入度为0的,一个放需要重启入度为0的....从不需要重启的队列开始,每弹出一个数就更新下入度,遇到入读为0的就加入到相应队列里,当队列空时,记录重启次数+1,交换队列..一直到两个队列都为空
Smart Software Installer
Time Limit: 2000/1000 MS (Java/Others) Memory ...
分类:
编程语言 时间:
2014-11-04 11:03:02
阅读次数:
282
查错考场上又写挂的一道签到题。。。我们发现这题要求得到一个最小字典序列显然找到所有序列然后排序是不可取的,那么我们不能使用平常的拓扑排序方法,怎么搞使得在每次处理拓扑顺序的时候来维护呢?用小根堆维护入度为0的点即可,输入的时候统计入度{$inline on}const maxn=100010;typ...
分类:
其他好文 时间:
2014-11-02 09:17:18
阅读次数:
285
拓扑排序,要让字典序最小,所以把栈改成堆。 1 #include 2 #include 3 #include 4 using namespace std; 5 #define N 100001 6 priority_queue,greater >Q; 7 int n,m,x,y; 8 int v[N...
分类:
编程语言 时间:
2014-11-02 09:15:08
阅读次数:
165