1.图 amap=dict() amap[a]=[b,c,d] amap[c]=[b,e] amap[d]=[e] amap[f]=[d,e] 2.每个节点的入度 a b c d e f 0 1 2 3 4 5 6 indegree=[0,0,2,1,2,3,0] 3.用于存放入度为0的节点的队列 ...
分类:
编程语言 时间:
2020-03-01 12:09:29
阅读次数:
101
给定一个无向图,一条路径被称为最短路,当且仅当不存在从它的起点到终点的另外一条路径总长度比它小。两条最短路不同,当且仅当它们包含的道路序列不同。我们需要对每条道路的重要性进行评估,评估方式为计算有多少条不同的最短路经过该道路。$n\leq 1500,m\leq 5000,w\leq 10000$ S ...
分类:
编程语言 时间:
2020-03-01 10:54:29
阅读次数:
65
输入若已经是排好序的,下列排序算法最快的是() A. 插入排序 B. Shell排序 C. 合并排序 D. 快速排序 解析:若已排好序,使用插入排序的时候只要两两比较一次即可,复杂度为O(n)。 答案:A 拓扑排序是按 AOE 网中每个结点事件的最早发生时间对结点进行排序,这样的说法正确吗? A. ...
分类:
编程语言 时间:
2020-02-27 00:56:42
阅读次数:
80
题意:给你一个食物网,求出食物链条数 题解:1.设f(i)是以i为终点的食物链条数(这里的食物链不一定是完整的)2.在建立食物网的过程中,对每个物种,记录捕食它的物种数和它捕食的物种数,记为in(i)和out(i),3.找到in(i)为0的生物,把它们扔进队列,初始化f[i]=14.把队列里第一种生 ...
分类:
编程语言 时间:
2020-02-22 00:03:29
阅读次数:
116
A.患者的编号 给出一个有向图,要求你输出字典序最小的拓扑排序。 常规拓扑排序是做不了的,正解是反向建图,同时用大根堆的优先队列维护,保证每次优先访问编号大的结点,再反向输出~ #include<bits/stdc++.h> using namespace std; const int maxn=1 ...
分类:
其他好文 时间:
2020-02-21 19:52:26
阅读次数:
72
J题队友犯了初始化的错,白给6发,本来能1A的 B: solver:lzh、czq 就是个拓扑排序 1 #include <bits/stdc++.h> 2 using namespace std; 3 #define ff first 4 #define ss second 5 #define m ...
分类:
其他好文 时间:
2020-02-20 18:35:36
阅读次数:
286
Problem Description 糟糕的事情发生啦,现在大家都忙着逃命。但是逃命的通道很窄,大家只能排成一行。现在有n个人,从1标号到n。同时有一些奇怪的约束条件,每个都形如:a必须在b之前。同时,社会是不平等的,这些人有的穷有的富。1号最富,2号第二富,以此类推。有钱人就贿赂负责人,所以他们 ...
分类:
编程语言 时间:
2020-02-19 22:28:56
阅读次数:
125
"Link" $u$支配$v$则连边$A_u\rightarrow B_v$。 若$B_u$是$A_v$的前缀则连边$B_u\rightarrow A_v$。 那么我们要求的就是这张图的点权最长路,拓扑排序+dp即可。 考虑如何优化建图。 先建出反串的SAM。 然后对于给定的子串$s_{l,r}$, ...
分类:
其他好文 时间:
2020-02-18 20:48:43
阅读次数:
116
"题目" 题意:有n门课程,就是n个顶点,有m个对应关系:x,y,表示只有先上了y,才能上x。也就是x到y有一条有向边。问你求是否存在环。 题解:对于有向图求是否存在环,可以用拓扑排序,拓扑排序就是寻找入度为0的顶点,然后删去,并减少相邻点的入度,再寻找入度为0的点,直到所有顶点都删去,如果存在换, ...
分类:
编程语言 时间:
2020-02-14 10:37:17
阅读次数:
71
「JSOI2015」最小表示 "传送门" 很显然的一个结论:一条边 $u \to v$ 能够被删去,当且仅当至少存在一条其它的路径从 $u$ 通向 $v$ 。 所以我们就建出正反两张图,对每个点开两个 维护它与其他点的连通性,这个可以通过拓扑排序预处理。 然后就枚举每一条边,拿两个端点的两个 与一下 ...
分类:
Web程序 时间:
2020-02-13 09:36:00
阅读次数:
71