题目描述
设G为有n个顶点的有向无环图,G中各顶点的编号为1到n,且当为G中的一条边时有i < j。设w(i,j)为边的长度,请设计算法,计算图G中<1,n>间的最长路径。

输入格式
输入文件longest.in的第一行有两个整数n和m,表示有n个顶点和m条边,接下来m行中每行输入3个整数a,b,v(表示从a点到b点有条边,边的长度为v)。

输出格式
输出文件longest.out,一个整数,即1到n之间的最长路径.如果1到n之间没连通,输出-1。

输入输出样例
输入 #1复制
2 1
1 2 1
输出 #1复制
1
说明/提示
20%的数据,n≤100,m≤1000

40%的数据,n≤1,000,m≤10000

100%的数据,n≤1,500,m≤50000,最长路径不大于10^9

思路:dijkstra不能求解最长路,直接跑spfa

#include<iostream>
#include<queue>
#include<algorithm>
#include<set>
#include<cmath>
#include<vector>
#include<map>
#include<stack>
#include<bitset>
#include<cstdio>
#include<cstring>
#define Swap(a,b) a^=b^=a^=b
#define cini(n) scanf("%d",&n)
#define cinl(n) scanf("%lld",&n)
#define cinc(n) scanf("%c",&n)
#define cins(s) scanf("%s",s)
#define coui(n) printf("%d",n)
#define couc(n) printf("%c",n)
#define coul(n) printf("%lld",n)
#define speed ios_base::sync_with_stdio(0)
#define Max(a,b) a>b?a:b
#define Min(a,b) a<b?a:b
#define mem(n,x) memset(n,x,sizeof(n))
#define INF  0x3f3f3f3f
#define maxn  100010
#define Ege 100000000
#define Vertex 1005
#define esp  1e-9
#define mp(a,b) make_pair(a,b)
using namespace std;
typedef long long ll;
typedef pair<int,int> PII;
struct Node
{int to, lat, val; //边的右端点,边下一条边,边权
};
Node edge[1000005];
int head[1005],tot,dis[1005],N,M,vis[1005];
void add(int from, int to, int dis)
{edge[++tot].lat = head[from];edge[tot].to = to;edge[tot].val = dis;head[from] = tot;}
void spfa(int s)
{for(int i=0;i<=N;i++) dis[i]=-INF;dis[0]=0;memset(vis, 0, sizeof(vis));vis[s] = 1;dis[s] = 0;queue<int>Q;Q.push(s);while (!Q.empty()){int u = Q.front();Q.pop();vis[u] = 0;for (int i = head[u]; i; i = edge[i].lat){int to = edge[i].to;int di = edge[i].val;if (dis[to]<dis[u] + di){dis[to] = dis[u] + di;if (!vis[to]){vis[to] = 1;Q.push(to);}}}}}
int main()
{int t, x;memset(head, 0, sizeof(head));cini(N),cini(M);while (M--){int a, b, dis;scanf("%d %d %d", &a, &b, &dis);add(a, b, dis);}spfa(1);if(dis[N]==-INF) {return cout<<-1<<endl,0;}cout<<dis[N]<<endl;return 0;
}

图论--最长路--洛谷P1807 最长路_NOI导刊2010提高(07)相关推荐

  1. 洛谷——P1775 古代人的难题_NOI导刊2010提高(02) P1936 水晶灯火灵(斐波那契数列)...

    P1775 古代人的难题_NOI导刊2010提高(02) P1936 水晶灯火灵 斐波那契数列 1.x,y∈[1-k],且x,y,k∈Z 2.(x^2-xy-y^2)^2=1 给你一个整数k,求一组满 ...

  2. 洛谷—— P1775 古代人的难题_NOI导刊2010提高(02)

    P1775 古代人的难题_NOI导刊2010提高(02) 题目描述 门打开了,里面果然是个很大的厅堂.但可惜厅堂内除了中央的一张羊皮纸和一支精致的石笔,周围几具骷髅外什么也没有.难道这就是王室的遗产? ...

  3. 洛谷P1807 最长路_NOI导刊2010提高(07) 求有向无环图的 最长路 图论

    洛谷P1807 最长路_NOI导刊2010提高(07) 图论 求有向无环图的 最长路 首先阐明一点 最长路dijkstra 是不能做 (当然我是不会做的,不过我貌似看到过网上的dalao有用dijst ...

  4. 题解【黑匣子_NOI导刊2010提高(06)】(洛谷P1801)

    题目大意 给出一个长度为\(M\)序列\(A\),表示第\(i\)回合将\(A_i\)放入一个箱子中(共有\(M\)回合),再给出一个长度为\(N\)序列\(B\),表示在\(B_i\)回合执行一次\ ...

  5. 洛谷 P1795 无穷的序列_NOI导刊2010提高(05)

    P1795 无穷的序列_NOI导刊2010提高(05) 题目描述 有一个无穷序列如下: 110100100010000100000- 请你找出这个无穷序列中指定位置上的数字 输入输出格式 输入格式: ...

  6. 【洛谷P1795 无穷的序列_NOI导刊2010提高(05)】模拟

    分析 map搞一下 AC代码 #include <bits/stdc++.h> using namespace std; map<int,int> mp; inline int ...

  7. 洛谷 P1840 【Color the Axis_NOI导刊2011提高(05)】 题解

    看了一下题解,显然在做无用功啊,而且麻烦了许多,但是这道题真心不难,显然是一个区间修改的题目,然后查询的题目 我的线段树只需要记录一个量:区间和 看了一下其他题解的pushdown函数,发现真心写的很 ...

  8. 洛谷 P1796 汤姆斯的天堂梦_NOI导刊2010提高(05)

    P1796 汤姆斯的天堂梦_NOI导刊2010提高(05) 题目描述 汤姆斯生活在一个等级为0的星球上.那里的环境极其恶劣,每天12小时的工作和成堆的垃圾让人忍无可忍.他向往着等级为N的星球上天堂般的 ...

  9. 汤姆斯的天堂梦_NOI导刊2010提高(05)【洛谷P1796】

    题目描述 汤姆斯生活在一个等级为0的星球上.那里的环境极其恶劣,每天12小时的工作和成堆的垃圾让人忍无可忍.他向往着等级为N的星球上天堂般的生活. 有一些航班将人从低等级的星球送上高一级的星球,有时需 ...

最新文章

  1. vue连线 插件_【Vue CLI】手把手教你撸插件
  2. 使用CSS将文字长度限制为n行
  3. OpenCV2.4.13在VS2012环境的debug模式下的链接库输入配置的文件目录
  4. SAP中关于物料主数据里物料类型的修改
  5. 浅谈 Knowledge-Injected BERTs
  6. 浙大 PAT 乙级1056
  7. Go语言并发编程简介
  8. linux vi只写入1个字节,关于linux命令的说明(这是一个命令集)
  9. 逻辑思维训练500题及答案
  10. windows无法完成格式化U盘的几种终极解决办法
  11. 消息队列MQ技术的介绍和原理
  12. 手机App测试的相关测试点-简单总结
  13. 科普 | 实景三维模型和地形三维模型 时空克隆 三维视频融合 投影融合 点卯-魔镜系列
  14. Exception occurred during ITK-SNAP startup
  15. 520|测一测你和ta的夫妻相
  16. 明天见丨云和恩墨生态产品发布会双平台直播,三款新品即将揭晓
  17. kubernetes 降本增效标准指南| 容器化计算资源利用率现象剖析
  18. mybatis oracle 多租户,Mybatis-plus多租户实战进阶
  19. VC2017使用protobuf-3.17.3版本
  20. 进入做手机ROM的,怎么不做联发科通用的rom

热门文章

  1. RGB(FFFFFF)转255:255:255
  2. 技本功丨知否知否,Redux源码竟如此意味深长(下集)
  3. 100行代码实现了多线程,批量写入,文件分块的日志方法
  4. CV_Sicong Liu
  5. [六省联考2017]组合数问题
  6. Scrum Meeting 报告
  7. hdu 1880 魔咒词典
  8. easyui combobox默认选中项
  9. cocos2d-x开发之动作游戏实战--5
  10. php解决跨域问题6,关于php:tp6-通过全局中间件-解决跨域问题