拓扑排序的题目,如果b的前置课程是a,则 a->b。首先计算每个节点的入度,入度为0的结点放到队列中,类似BFS。如果最后有结点的度不为0,说明不行(有环存在)。 ...
分类:
其他好文 时间:
2018-08-24 10:50:27
阅读次数:
134
【题目描述】 给定一张N个点M条边的有向无环图,分别统计从每个点出发能够到达的点的数量。N,M≤30000。 【题目链接】 "2101 可达性统计" 【算法】 拓扑排序之后逆序计算, bitset 状态压缩模拟集合的并操作。 【代码】 cpp include using namespace std; ...
分类:
其他好文 时间:
2018-08-21 22:40:26
阅读次数:
243
Mouse Hunt 给定一个n个点的图,每个点有权值$c_i$,并且只有一条出边。现在你要在一些点上打标记,使得从任何一个点出发最终都会经过有标记的点。求标记点的权值和最小值。 就是找环啊!拓扑排序啊! c++ include include using namespace std; const ...
分类:
其他好文 时间:
2018-08-19 22:00:09
阅读次数:
147
1 /* 2 Source :hihocoder编程练习73 3 Problem :一个长度为n的串,由若干段1-a[i](假设有Y段)的序列组成,现在中间缺了K个数,问能够还原出来的方案数,需要保证还原出来的子串的个数最少,即最小Y 4 Solution :1.通过分析剩余的序列,我们可以知道原来... ...
分类:
其他好文 时间:
2018-08-19 19:57:49
阅读次数:
112
#1097 : 最小生成树一·Prim算法 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 最近,小Hi很喜欢玩的一款游戏模拟城市开放出了新Mod,在这个Mod中,玩家可以拥有不止一个城市了! 但是,问题也接踵而来——小Hi现在手上拥有N座城市,且已知这N座城市中任意两 ...
分类:
编程语言 时间:
2018-08-19 11:50:08
阅读次数:
145
今天写了一个自己的随机跳题小程序,第一次试发现跳的全是不可做题,但是在周围我一眼看见了这个题,不能说一眼看出来,但是也是比较有思路,所以就做他了! 做得比较顺利,做完之后美滋滋,突然发现样例第三组过不了。。。然后发现自己算法有问题。。。GG,又想了一个超复杂的算法,刚开始写就放弃了,根本没法写。 于 ...
分类:
编程语言 时间:
2018-08-19 01:00:34
阅读次数:
211
题意:N个点,给出M条两个点u、v,满足u比值小。给这N个点编号,要求排在前的比排在后的质量小,且编号不重复。求每点能得到最小编号的编号方法。 分析:用拓扑排序求解。 用优先队列来存待标记的点,编号大的点优先出队列,然后从大到小依次标记(编号小的优先肯定是错的,当时wa死了)。 若求不出拓扑排序则答 ...
分类:
编程语言 时间:
2018-08-18 17:51:46
阅读次数:
151
1.无向图 并查集:检查每一条边的两个端点是否是相同的连通子图,如果是相同的,说明存在环; 深度遍历:使用邻接矩阵,只需要用一个数组标记是否访问过,如果访问过且不是该节点的父节点,则有环; 广度优先:可以; 2.有向图 拓扑排序:用一个队列记录入度为0的点,然后将他们去除时,另边的另一头节点的入度减 ...
分类:
其他好文 时间:
2018-08-17 19:58:07
阅读次数:
135
1.对于判断有向图是否有环 拓扑排序: 拓扑排序原理: 1. 从DAG(有向无环图)中选一个 没有前驱(即入度为0)的顶点并输出。 2. 从图中删除该顶点和所有以它为起点的有向边。 3. 重复1和2直到当前的DAG为空或当前图中不存在无前驱的顶点为止,后一种情况说明有向图中一定有环。 时间复杂度:O ...
分类:
编程语言 时间:
2018-08-17 19:04:20
阅读次数:
151
考虑一个转化 我们用p[i]表示权值为i的在原序列中所在的位置为p[i] 这样我们得到了一个p序列 显然的一点原序列操作后字典序最小等价于让p序列操作后字典序最小 我们考虑p序列怎么进行操作 显然的相当于可以交换任意两个相邻的数,前提为两个差值>=k 显然这种操作相当于拓扑排序 考虑i和j(指的是权 ...
分类:
其他好文 时间:
2018-08-16 21:03:52
阅读次数:
333