题解:
把所有入度为0的点入优先队列,每次取出标号最大的,并将此点取走后入度为0的点入优先队列,最后反序输出。
代码:
#include
#include
#include
#include
#include
#define N 101000
#define M 101000
using namespace std;
struct Eli
{
int v,next;
}...
分类:
其他好文 时间:
2015-04-29 15:10:13
阅读次数:
122
首先是贪心的思想。。。我们从小到大确定每个最前的位置建出反图,然后拓扑排序,每次找$deg=0$的点中最大的那个,于是就可以保证编号小的尽可能的在后面最后把顺序倒过来输出就好了。。。 1 /******************************************************....
分类:
其他好文 时间:
2015-04-24 22:22:45
阅读次数:
179
拓扑排序 这题是要求N个点的一个拓扑序,且满足以下条件:编号1的位置尽可能靠前,在此基础上编号2的位置尽可能靠前…… 我看到这题的第一感觉:将拓扑排序用的队列改为优先队列,编号越小越早出来。 但是连样例都过不了= =因为这样做是【字典序最小】,并不一定满足题目的条件(看样例就知道了,这样其...
分类:
其他好文 时间:
2015-04-23 17:19:47
阅读次数:
187
题目大意:给定一张无向图,求一个拓扑序,使:
1的位置最靠前
在保证上面的条件下使2的位置最靠前
在保证上面的条件下使3的位置最靠前
……
注意不是字典序最小!例如样例3建立反图,对反图求字典序最小的拓扑序,然后反向输出即可。
我不知道为什么。真的不知道。
求个解答在线等。#include
#include
#include ...
分类:
编程语言 时间:
2015-04-22 13:56:07
阅读次数:
198