https://www.luogu.com.cn/problem/P1807
题目大意
n个顶点的带权有向无环图,边权可能为负值,求1到n的最长路,无法到达则输出 -1
思路
拓扑排序,直接先将入度为0的入队,定义dis数组,先全部设置成一个极小值,dis[i]为i号顶点到1的距离,然后拓扑排序过程中更新dis,若最后dis[n]仍为极小值输出 -1,否则输出dis[n]
代码
#include <cstdio>
#include <cstring>
#include <iostream>
#include <queue>
#include <vector>
using namespace std;
struct edge {
int v;
int w;
};
const int N = 1505;
int n, m;
int dis