拓扑排序 悠悠 2022-06-08 06:19 49阅读 0赞 In this winter holiday, Bob has a plan for skiing at the mountain resort. This ski resort has M*M* different ski paths and N*N* different flags situated at those turning points. The i*i*\-th path from the S\_i*S**i*\-th flag to the T\_i*T**i*\-th flag has length L\_i*L**i*. Each path must follow the principal of reduction of heights and the start point must be higher than the end point strictly. An available ski trail would start from a flag, passing through several flags along the paths, and end at another flag. Now, you should help Bob find the longest available ski trail in the ski resort. ### Input Format ### The first line contains an integer T*T*, indicating that there are T*T* cases. In each test case, the first line contains two integers N*N* and M*M* where 0 < N \\leq 100000<*N*≤10000 and 0 < M \\leq 1000000<*M*≤100000as described above. Each of the following M*M* lines contains three integers S\_i*S**i*, T\_i*T**i*, and L\_i~(0 < L\_i < 1000)*L**i* (0<*L**i*<1000) describing a path in the ski resort. ### Output Format ### For each test case, ouput one integer representing the length of the longest ski trail. #### 样例输入 #### 1 5 4 1 3 3 2 3 4 3 4 1 3 5 2 #### 样例输出 #### 6 #### 题目来源 #### [2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛][2017 ACM-ICPC] 最长路径: \#include <iostream> \#include <cstdio> \#include <cstring> \#include <algorithm> \#include <queue> \#include <vector> \#define inf 0x3f3f3f \#define ms(x) memset(x,0,sizeof(x)) \#define mf(x) memset(x,-1,sizeof(x)) using namespace std; const int N = 20002; struct node \{ int y,z; node() \{\} node(int ty, int tz): y(ty), z(tz) \{\} \}; vector<node>q\[N\]; int in\[N\]; int f\[N\]; int main() \{ int T; int n,m; scanf("%d",&T); while(T--) \{ queue<int>que; ms(in); ms(f); int ans = 0; scanf("%d%d",&n,&m); for(int i=1; i<=n; i++) q\[i\].clear(); for(int i=0; i<m; i++) \{ int x, y, z; scanf("%d%d%d",&x,&y,&z); q\[x\].push\_back(node(y,z)); in\[y\]++; \} for(int i=1; i<=n; i++) \{ if(!in\[i\]) que.push(i); \} while(!que.empty()) \{ int cur = que.front(); que.pop(); for(int i=0; i<q\[cur\].size(); i++) \{ int v = q\[cur\]\[i\].y; int w = q\[cur\]\[i\].z; f\[v\] = max(f\[v\],f\[cur\]+w); ans = max(ans, f\[v\]); in\[v\]--; if(!in\[v\]) que.push(v); \} \} cout<<ans<<endl; \} return 0; \} [2017 ACM-ICPC]: https://nanti.jisuanke.com/?kw=2017%20ACM-ICPC%20%E4%BA%9A%E6%B4%B2%E5%8C%BA%EF%BC%88%E4%B9%8C%E9%B2%81%E6%9C%A8%E9%BD%90%E8%B5%9B%E5%8C%BA%EF%BC%89%E7%BD%91%E7%BB%9C%E8%B5%9B
相关 拓扑排序以及拓扑排序算法 拓扑排序对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边<u,v>∈ 小咪咪/ 2023年09月28日 22:58/ 0 赞/ 27 阅读
相关 拓扑排序 拓扑排序是一张AOV网(Activity Of Vertex NetWork),并且是无环的网! 概念: 设G=(V,E)是一个具有n个顶点的有向图,V中的顶点序列V1,V 墨蓝/ 2022年08月05日 13:11/ 0 赞/ 55 阅读
相关 拓扑排序 什么是拓扑排序? 在图论中,拓扑排序(Topological Sorting)是一个有向无环图(DAG, Directed Acyclic Graph)的所有顶点的线性序 冷不防/ 2022年06月09日 05:57/ 0 赞/ 248 阅读
相关 拓扑排序 In this winter holiday, Bob has a plan for skiing at the mountain resort. This ski 悠悠/ 2022年06月08日 06:19/ 0 赞/ 50 阅读
相关 拓扑排序 原文地址:[http://blog.csdn.net/lisonglisonglisong/article/details/45543451][http_blog.csdn.n 曾经终败给现在/ 2022年04月22日 13:00/ 0 赞/ 49 阅读
相关 拓扑排序 拓 扑 排 序 一个较大的工程往往被划分成许多子工程,我们把这些子工程称作活动(activity)。在整个工程中,有些子工程(活动)必须在其它有关子工程完成之后才能开始,也就 小鱼儿/ 2022年04月10日 08:23/ 0 赞/ 270 阅读
相关 拓扑排序 (1)有向无环图 无环的有向图,简称 DAG (Directed Acycline Graph) 图。 有向无环图在工程计划和管理方面的应用:除最简单的情况之外,几 古城微笑少年丶/ 2022年03月18日 12:35/ 0 赞/ 318 阅读
相关 拓扑排序 拓扑排序: 拓扑排序是根据离散数学中有关偏序与全序定义的。 ![0_1314168765l7fq.gif][] 若一个集合 X 上的关系 R 是自反的 反 淩亂°似流年/ 2021年12月23日 02:43/ 0 赞/ 373 阅读
相关 拓扑排序 拓扑排序 题目做的烦,题解写着玩 [POJ 2762 Going from u to v or from v to u?][POJ 2762 Going from 谁借莪1个温暖的怀抱¢/ 2021年12月20日 16:11/ 0 赞/ 317 阅读
相关 拓扑排序 一个较大的工程往往被划分成许多子工程,我们把这些子工程称作活动(activity)。在整个工程中,有些子工程(活动)必须在其它有关子工程完成之后才能开始,也就是说,一个子工程 野性酷女/ 2021年09月19日 05:04/ 0 赞/ 489 阅读
还没有评论,来说两句吧...