如HDU的4502,把题目抽象成一张图,把区间的头-1,这样就可以连接起来了。

View Code

#include <cstdio>
#include <cstring>
const int Max = 109;
#define max(a,b) a>b?a:bint mat[Max][Max];
int dis[Max];
bool vis[Max];
int n ,m;void dij(int s) {memset(vis,0,sizeof(vis));for(int i = 1; i <= n; i++) {dis[i] = mat[s][i];}vis[s] = 1;while(1) {int Mmin = 0, p = -1;for(int i = 1; i <= n; i++) {if(!vis[i] && dis[i] > Mmin) {Mmin = dis[i];p = i;}}if(p == -1)break;vis[p] = 1;for(int i = 1; i <= n; i++) {if(dis[i] < dis[p] + mat[p][i]) {dis[i] = dis[p] + mat[p][i];}}}
}int main() {int t;scanf("%d",&t);while(t--) {scanf("%d%d",&n,&m);memset(mat,-0x7f,sizeof(mat));for(int i = 0; i <=n ; i++) {for(int j = i+1; j <=n ;j++) {mat[i][j] = 0;}}for(int i = 0; i < m; i++) {int a ,b ,c;scanf("%d%d%d",&a,&b,&c);if(b > n)continue;mat[a-1][b] = max(mat[a-1][b],c);}for(int k = 0; k <= n; k++) {for(int i = k + 1; i <= n; i++) {for(int j = k - 1 ; j >= 0; j--) {mat[j][i] = max(mat[k][i],mat[j][i]);}}}dij(0);int ans = 0;for(int i = 1; i <= n; i++) {if(dis[i] > ans)ans = dis[i];}printf("%d\n",ans);}return 0;
}

PS:最长路没有子结构,子段最长不一定总的最长。如此图

转载于:https://www.cnblogs.com/gray035/archive/2013/03/21/2973902.html

Dijkstra求最长路就是个坑!相关推荐

  1. 算法提高课-图论-单源最短路的建图方式-AcWing 1126. 最小花费:dijkstra求最长路

    题目分析 来源:acwing 分析: 链条转移:start * (1-w1) * (1- w2) * (1- w3) -(1-wn) = 100,要start最小,则w =(1-w1) * (1- w ...

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

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

  3. 【图论】C059_AW_GF和猫咪的玩具 分糖果(floyd求最短路中的最长路 | 最后一个小朋友吃完的时间)

    一.GF和猫咪的玩具 GF同学和猫咪得到了一个特别的玩具,这个玩具由n个金属环(编号为1-n),和m条绳索组成,每条绳索连接两个不同的金属环,并且长度相同. GF左手拿起金属环L,猫咪右手(或者说:爪 ...

  4. 【POJ - 3160】Father Christmas flymouse(Tarjan缩点,DAG最长路)

    题干: After retirement as contestant from WHU ACM Team, flymouse volunteered to do the odds and ends s ...

  5. 图论 —— DAG 图的最长路

    [概述] DAG 图的最长路问题是一个比较少见的问题,具体问题是:给出一个 DAG 图,寻找图中的最长路 在 AOE 网中,在找出关键路径后,对其进行 DFS 即可得到图的最长路,由于这种方法的实现过 ...

  6. 洛谷P2462 [SDOI2007]游戏(哈希+最长路)

    题面 传送门 题解 我们把字符的出现次数哈希起来,然后把每个点向能在它之后的点连边.那么这显然是一个\(DAG\),直接求最长路就行了 //minamoto #include<bits/stdc ...

  7. 硬币问题——固定终点的最长路和最短路

    问题描述: 有n种硬币,面值分别为V1,V2...,Vn,每种都有无限多.给定非负整数S,可以选用多少个硬币,使得面值之和恰好为S?输出硬币数目的最小值和最大值.0 <= n <= 100 ...

  8. 【SPFA】最长路(洛谷)

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

  9. C - Coolest Ski Route(关于DAG图的最长路问题四种解法)

    VJ链接 C - Coolest Ski Routehttps://vjudge.net/contest/491449#problem/C 首先是比赛中用的bfs写法 #include<iost ...

最新文章

  1. 交叉编译并移植opencv3.0.0到arm板
  2. Uniform Grid Quadtree kd树 Bounding Volume Hierarchy R树 搜索
  3. VC编写的程序不能在其他机器上运行的解决方案(续)
  4. 学典教育计算机二级,层次化分类的离线中文签名真伪鉴别方法-计算机工程与应用.PDF...
  5. C++/C语言实现HTTP的GET和POST请求
  6. linux安装软件包(pip, distribute, nose, virtualenv)
  7. 菜鸟学前端--javascript基础
  8. JavaScript开发规范要求
  9. 第04章:MongoDB基本概念
  10. 不应被忽视的医院终端安全建设
  11. 等保与ISO27001
  12. Java程序开发的基本流程是什么样的?
  13. OSChina 周五乱弹 —— IG wxz 请联系小小编辑付钱删帖
  14. 一个简单的java代码,输入当前星期,输出今天是星期几
  15. 《培生小学英语分级阅读80篇 五年级》勘误表
  16. 【纯前端】原生js实现照片水印
  17. C++中string.size()函数 踩坑
  18. 基于Keras搭建CNN、TextCNN文本分类模型
  19. dell服务器 指示灯_DELL服务器面板指示灯错误代码
  20. 今日运势 酷q_mirai QQ机器人运势,一言,一键签到插件

热门文章

  1. python统计元音总数_python:计算用户输入词中元音或辅音的数量
  2. 对接wayfair API
  3. Machine—learning 所需基础数理知识 (由黄海广博士整理而成)
  4. 《ASP.NET AJAX程序设计——第II卷:客户端Microsoft AJAX Library与异步通讯层》前言...
  5. 计算机设计校园的简要教案,(最新整理)《画出美丽的校园》教学设计
  6. Google搜索引擎的新功能
  7. 一个查看天气气流风向的网站,很炫
  8. HTML5 知识 整理
  9. java elgamal_【Java小工匠】非对称加密--ElGamal
  10. ios识别人脸自动拍照_iOS12人脸识别测颜值捷径安装使用教程 iPhone怎么测颜值