AOE网上的关键路径

Time Limit: 1000MS Memory Limit: 65536KB
Submit Statistic Discuss

Problem Description

一个无环的有向图称为无环图(Directed Acyclic Graph),简称DAG图。     AOE(Activity On Edge)网:顾名思义,用边表示活动的网,当然它也是DAG。与AOV不同,活动都表示在了边上,如下图所示:                                           如上所示,共有11项活动(11条边),9个事件(9个顶点)。整个工程只有一个开始点和一个完成点。即只有一个入度为零的点(源点)和只有一个出度为零的点(汇点)。     关键路径:是从开始点到完成点的最长路径的长度。路径的长度是边上活动耗费的时间。如上图所示,1 到2 到 5到7到9是关键路径(关键路径不止一条,请输出字典序最小的),权值的和为18。

Input

这里有多组数据,保证不超过10组,保证只有一个源点和汇点。输入一个顶点数n(2<=n<=10000),边数m(1<=m <=50000),接下来m行,输入起点sv,终点ev,权值w(1<=sv,ev<=n,sv != ev,1<=w <=20)。数据保证图连通。

Output

关键路径的权值和,并且从源点输出关键路径上的路径(如果有多条,请输出字典序最小的)。

Example Input

9 11
1 2 6
1 3 4
1 4 5
2 5 1
3 5 1
4 6 2
5 7 9
5 8 7
6 8 4
8 9 4
7 9 2

Example Output

18
1 2
2 5
5 7
7 9

#include <bits/stdc++.h>
using namespace std;
struct edge{//存储边的结构体int v,w,pre;
}p[50086];
int n,m,next[10086],head[50086],cnt,vis[10086],dis[10086],i,u,v,w;
int main(){while(~scanf("%d %d",&n,&m)){memset(head,-1,sizeof(head));memset(next,0,sizeof(next));//节点i的后继为next[i]memset(vis,0,sizeof(vis));memset(dis,0,sizeof(dis));//节点i到起点n的最长路径长度为dis[i]cnt=0,vis[n]=1;for(i=0;i<m;i++){scanf("%d %d %d",&v,&u,&w);p[cnt].v=v,p[cnt].w=w,p[cnt].pre=head[u],head[u]=cnt++;//逆序添加有向边}queue<int>q;q.push(n);while(!q.empty()){//SPFA算法求最长路径u=q.front();q.pop();vis[u]=0;for(i=head[u];~i;i=p[i].pre)//检查并更新节点u的所有前驱节点if(dis[p[i].v]<dis[u]+p[i].w||(dis[p[i].v]==dis[u]+p[i].w&&next[p[i].v]>u)){dis[p[i].v]=dis[u]+p[i].w,next[p[i].v]=u;//设置节点v的后继为节点uif(!vis[p[i].v]){q.push(p[i].v);vis[p[i].v]=1;}}}printf("%d\n",dis[1]);//输出最长路径的长度for(i=1;next[i];i=next[i])//输出1-n的最长路径printf("%d %d\n",i,next[i]);}return 0;
}

转载于:https://www.cnblogs.com/CCCrunner/p/6444578.html

AOE网上的关键路径相关推荐

  1. sdut AOE网上的关键路径(spfa+前向星)

    http://acm.sdut.edu.cn/sdutoj/showproblem.php?pid=2498&cid=1304 题目描述 一个无环的有向图称为无环图(Directed Acyc ...

  2. 图论 —— AOE 网与关键路径

    [AOE 网] 在表示一个工程时,用顶点表示事件,用弧表示活动,权值表示活动的持续时间,这样的有向图即为 AOE 网. 其有两个性质: 在顶点表示事件发生之后,从该顶点出发的有向弧所表示的活动才能开始 ...

  3. AOE网与关键路径简介

    前面我们说过的拓扑排序主要是为解决一个工程能否顺序进行的问题,但有时我们还需要解决工程完成需要的最短时间问题.如果我们要对一个流程图获得最短时间,就必须要分析它们的拓扑关系,并且找到当中最关键的流程, ...

  4. AOE网与关键路径、关键路径算法

    AOE网与关键路径 在一个表示工程的带权有向图中,用顶点表示事件,用有向边表示活动,边上的权值表示活动持续的时间,称这样的有向图为边表示活动的网,简称 AOE网(activity on edge ne ...

  5. dhu 6 获取AOE网的关键路径

    6 获取AOE网的关键路径 作者: 冯向阳时间限制: 1S章节: 课程设计 问题描述 : 建立一个有向网AOE网,设计并完成一算法Get_CriticalPath(),获取关键路径.该路径仅输出,不须 ...

  6. 【数据结构和算法笔记】AOE网和关键路径

    目录 AOE网的概念: 关键路径:(critical  path) 求关键路径和关键活动: 事件的最早开始时间(event early): 事件的最迟开始时间(event late): 活动的最早开始 ...

  7. AOE网:关键路径和关键活动

    关键路径 在我的经验意识深处,"关键"二字一般都是指临界点. 凡事万物都遵循一个度的问题,那么存在度就会自然有临界点. 关键路径也正是研究这个临界点的问题. 在学习关键路径前,先了 ...

  8. 选择题快速求解AOE网的关键路径

    #引言 求解AOE网关键路径时,书上的方法为先从源点到汇点求解事件最早发生时间ve,再从汇点到源点求解事件最迟发生时间vl,再利用ve和vl求解每个活动的最早开始时间e(i)和最迟开始时间l(i),e ...

  9. 图算法入门4:活动网络-AOE网络和关键路径(critical path)

    AOE网络的基本概念 上一节介绍了活动网络AOV网络的相关内容,这一节将进一步介绍另一种活动网络AOE网络.如果对于有向无环图(DAG),用有向边表示一个工程的各项活动(activity),边上的权值 ...

最新文章

  1. 如何将算子添加到Relay
  2. 训练NeRF只需5秒?!英伟达这项新技术给谷歌研究员整不会了 | 开源
  3. 网络通信-1(InetAddress、UDP、TCP、DatagramPacket、DatagramSocket、UDP通信示例)
  4. ARM中的RO、RW和ZI DATA
  5. python具有可扩展的特性_Python的特点
  6. LeetCode(447)——回旋镖的数量(JavaScript)
  7. Atitit.数据库事务隔离级别 attilax 总结
  8. Julia : WinRPM error -----待确定
  9. rust原声音乐_Joan Baez – Diamonds Rust
  10. 计算机无法访问桌面,桌面无法显示_电脑桌面显示:无法访问,你可能没有权限使用网络......
  11. 矩阵的谱分解 (详细推导步骤~~~特征值分解特征向量
  12. linux 内核参数 pte,Linux下通过线性地址得到页表项pte(X86和龙芯2F下)
  13. 机器学习|切比雪夫不等式(3sigma原则来源)|10mins入门|概统学习笔记(十)
  14. git add 之后没有push 怎么找回代码?
  15. 关于抢红包的_酷乐研究所 | 过年净抢红包了?我们准备了50种新玩法
  16. 开发中的各种时间格式转换(一)
  17. 1248码转换成ABCD
  18. VBA 模块级变量和过程级变量,全局变量,局部变量,end,exit end sub等影响
  19. 文件创建时间、修改时间、访问时间的定义
  20. HTML5游戏引擎lufylegend深入浅出 - 引擎介绍原理

热门文章

  1. python数值型转换字符型_2.6 字符型常量
  2. 四川网络推广介绍搜索引擎从哪几个方面判断网站质量好坏?
  3. Android固定宽度文字自适应大小
  4. tensorflow 实现逻辑回归——原以为TensorFlow不擅长做线性回归或者逻辑回归,原来是这么简单哇!...
  5. 使用Android Studio build tensorflow/examples/android——直接用android studio即可
  6. 深入理解groupByKey、reduceByKey区别——本质就是一个local machine的reduce操作
  7. lmdb简介——结合MVCC的B+树嵌入式数据库
  8. git错误提交怎么整?强行回滚最为致命
  9. php 取绝对值(php自带函数可以直接取)
  10. 【css】报错,错误代码77,CURLE_SSL_CACERT_BADFILE (77)解决方法