当前位置: 首页 > news >正文

深圳建站服务公司山东嘉邦家居用品公司网站 加盟做经销商多少钱 有人做过吗

深圳建站服务公司,山东嘉邦家居用品公司网站 加盟做经销商多少钱 有人做过吗,wordpress主题 幻灯,个人网页制作模板html关键路径-STL版 题目描述 给定有向图无环的边信息,求每个顶点的最早开始时间、最迟开始时间。 输入 第一行图的顶点总数 第二行边的总数 第三行开始,每条边的时间长度,格式为源结点 目的结点 长度 输出 第一行:第个顶点的最早…

关键路径-STL版

题目描述
给定有向图无环的边信息,求每个顶点的最早开始时间、最迟开始时间。

输入
第一行图的顶点总数

第二行边的总数

第三行开始,每条边的时间长度,格式为源结点 目的结点 长度

输出
第一行:第个顶点的最早开始时间

第二行:每个顶点的最迟开始时间

输入样例1
9
12
0 1 3
0 2 10
1 3 9
1 4 13
2 4 12
2 5 7
3 6 8
3 7 4
4 7 6
5 7 11
6 8 2
7 8 5

输出样例1
0 3 10 12 22 17 20 28 33
0 9 10 23 22 17 31 28 33

拓扑排序 关键路径

拓扑排序其实就是对有向无环图的顶点的一种排序,每个顶点出现且只出现一次。
对一个AOV网进行拓扑排序的方法:

  1. 从AOV网中选择一个入度为0的顶点并输出;
  2. 从网中删除该顶点和所有以它为起点的有向边;
  3. 重复1和2直到当前的AOV网为空或当前网中不存在入度为0的顶点为止;
  • 拓扑排序可以验证是否有环,如果有环,则无法将所有节点加入排序数组,如果没环就可以
  • 拓扑排序序列不是唯一的,可以根据节点序号递增,或通过队列、栈来给出
  • 逆拓扑排序也可以是拓扑排序逆过来

逆拓扑排序的步骤:

1、从AOV网中选择一个出度为0的顶点并输出;

2、从网中删除该顶点和所有以它为终点的有向边;

3、重复1和2,直到当前的AOV网为空

关键路径:从源点到汇点的有向路径可能有多条,所有路径中,具有最大路径长度的路径称为关键路径,而把关键路径上的活动称为关键活动

  • 活动ai的最早开始时间e(i):指该活动弧的起点所表示的事件的最早发生时间;
  • 活动ai的最迟开始时间l(i):指该活动弧的终点所表示事件的最迟发生时间与该活动所需时间之差;
  • 活动ai的时间余量:d(i)=l(i)-e(i),表示在不增加完成整个工程所
  • l(i)=e(i)的活动ai是关键活动,由关键活动组成的路径就是关键路径。
#include<bits/stdc++.h>
using namespace std;
int main()
{int n;cin>>n;int line;cin>>line;//邻接矩阵int a[505][505] = {0};//顶点入度int ind[505] = {0};for(int i = 0; i < line; i++){int v1,v2,v;cin>>v1>>v2>>v;a[v1][v2] = v;ind[v2] ++;}queue<int> q;//拓扑排序数组int ssort[505];for(int i = 0; i < n; i++){if(ind[i] == 0) {q.push(i);ind[i] = -1;}}int cnt = 0;while(!q.empty()){int now = q.front();q.pop();//加入拓扑排序数组ssort[cnt++] = now;for(int i = 0; i < n; i++){if(a[now][i]) ind[i]--;if(ind[i] == 0){q.push(i);ind[i] = -1;}}}//拓扑排序另一种实现方式 更方便// int num = 0;// // while(num < n)// {//     for(int i = 0; i < n; i++)//     {//         if(ind[i] == 0) //         {//             ind[i] = -1;//             ssort[num++] = i;//             for(int j = 0; j < n; j++)//             {//                 if(a[i][j]) ind[j]--;//             }//         }//     }// }int start = ssort[0];int end = ssort[n-1];//最早开始时间和最晚开始时间int earliest[505] = {-1}, latest[505] = {99999999};earliest[start] = 0;//最早开始时间根据拓扑排序顺序计算//即前一个的最早开始时间加上到该点的时间的最大值for(int i = 1; i < n; i++){int ans = 0;int index = ssort[i];for(int j = 0; j < n; j++){if(a[j][index]) ans = max(ans,earliest[j] + a[j][index]);}earliest[index] = ans;}for(int i = 0; i < n; i++){cout<<earliest[i]<<" ";}cout<<endl;//最后一个点的最早开始时间和最晚开始时间相等latest[end] = earliest[end];//最晚开始时间根据逆拓扑排序顺序计算//即后一个点的最晚开始时间减去到该点的时间的最小值for(int i = n-2; i >= 0; i--){int index = ssort[i];int ans = 99999999;for(int j = 0; j < n; j++){if(a[index][j]) ans = min(ans,latest[j] - a[index][j]);}latest[index] = ans;}for(int i = 0; i < n; i++){cout<<latest[i]<<" ";}cout<<endl;return 0;
}

另外可以用DFS求拓扑排序数组:
祖先结点的DFS函数结束时间大于子孙结点的DFS函数结束时间,利用DFS求出各顶点结束时间,对于拓扑排序,就是将结束时间从大到小排序。

http://www.sczhlp.com/news/134009/

相关文章:

  • 太原开发网站公司静态网页文件
  • 旅游网站开发的流程天津手机网站建设
  • wordpress导航站模板如何搭建网站赚点击
  • 眉山营销型网站建设wordpress积分
  • 有什么平面设计的网站wordpress删除数据库
  • 网站app免费生成软件国家企业信息填报系统登录
  • 备案的网站是公司吗网络营销案例成功案例分析
  • 景县网站建设二级域名网站怎么做
  • 和男人人做的网站通辽网站建设通辽
  • 个人网站主页设计vancl官网
  • 哪个网站有激光打标业务做融水县住房和城乡建设局网站
  • 网站建设 业务员提成海外电商
  • 网站链接设计建设银行忘记密码网站首页
  • 刚做的网站搜全名查不到有创意的网络公司名字
  • 宁金诚信建设网站安阳淘宝网站建设
  • 专业做网站平台网站网络投票建设模板
  • 保定网站制作网页南宁中小企业网站制作
  • 61制作工厂网站深圳企业建站系统模板
  • 世界十大网站排名出炉dw网站站点建立后怎么做
  • tk后缀网站是什么网站有没有可以做兼职的网站
  • 如何评估一个网站seo的优异程度CMS源码就可以做网站吗
  • 佛山企业网站制作网站设计大概流程
  • 深圳市企业网站seo哪里有好的网站
  • iis网站asp.net部署wordpress主题导航
  • 公司网站链接网络营销方法
  • 专业网站建设服务公司哪家好网站的申请
  • 怎样开发手机网站手机上怎么赚钱啊 正规
  • 网站开发公司市场甘肃兰州旅游必去十大景点
  • HarmonyOS SDK 媒体开放能力在微博社交场景的实践剖析
  • 做网站挣钱的人net 网站开发