第一行输入
结点个数 边数 权值
有两个函数:
1.判断有向图是否有环
并且计算出最早发生时间
2.求关键路径,输出e1,为0时说明是关键路径
#include <bits/stdc++.h>
#include<stdio.h>
using namespace std;
const int maxn = 100 + 10;
const int INF = 0x3f3f3f3f; //定义一个很大的数INF且后面代码不可更改INF的值
int G[maxn][maxn]; //G,e1,d,d1
int deg1[maxn], deg[maxn]; //出度,入度
int el[maxn][maxn], d[maxn], d1[maxn];
int V, E, MAX_len = 0;
//判断是否可调度 计算最早发生时间
int toposort()
{
memset(d, 0, sizeof(d)); //d数组记录各点最短发生时间
int que[maxn], l = 0, r = 0;
for (int i = 1;i <= V;i++