比较简单的一道DP题,题意是给你n条路,每条路的最右边有一个梯子,也就是说只要一条路的最右边在另一条路上,那么就可以从这条路去那条路。

一开始没考虑清楚状态怎么表示,TLE了一次。 因为路的最右边从小到大排序,且不能向回走,所以用d[i]表示到大i点的最优解,那么当前这个状态只能由该点之前的某条路也就是某个状态转移过来,所以只要枚举i点之前的所有路就行了,另外注意一下边界。

推荐下一道DP题目:点击打开链接

细节参见代码:

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<vector>
#include<map>
#include<list>
#include<cmath>
#include<set>
#include<queue>
using namespace std;
typedef long long ll;
const long long maxn = 2000 + 5;
const int INF = 1000000000;
int T,n,m,v,d[maxn];
struct node{int a, b, w;
}a[maxn];
int main() {scanf("%d",&T);while(T--){scanf("%d%d",&n,&m);memset(d,0,sizeof(d));for(int i=1;i<=n;i++) scanf("%d%d%d",&a[i].a,&a[i].b,&a[i].w);for(int j=1;j<=n;j++) {d[j] = (j == 1 ? a[j].w : INF);for(int k=1;k<j;k++) {if(a[k].b<=a[j].b&&a[k].b>=a[j].a)d[j] = min(d[j],d[k]+a[j].w);}}for(int i=1;i<=m;i++) {scanf("%d",&v);if(d[v]!=INF) printf("%d\n",d[v]);else printf("-1\n");}}return 0;
}

HDU 2851 Lode Runner(简单DP)相关推荐

  1. hdu - 2851 - Lode Runner(Dijkstra)

    题意:输入测试组数C,输入N(N条路)和M(M个目标),接着输入N条路的起始横坐标S[i]与终止横坐标E[i],还有这条路的危险值W[i],这些路已按E从小到大排了序.接着输入M个目标路,输出走到相应 ...

  2. hdu - 2851 Lode Runner (最短路)

    http://acm.hdu.edu.cn/showproblem.php?pid=2851 首先有n层,每层的路径都有一个起点和终点和对应的危险值,如果某两层之间有交集,就能从这一层上到另外一层,不 ...

  3. hdu 2851 Lode Runner

    下午看virtual contest有比赛,我就随便找了个,做的是09年的多校联合训练的题. 一看就是最短路啊,脑子一抽,开始写,写完发现题意理解错了T T...笨蛋... 这个是,每条路给了横坐标, ...

  4. hdu 1559 最大子矩阵 (简单dp)

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=1559 1 #include <cstring> 2 #include <cstdlib& ...

  5. 【HDOJ】2851 Lode Runner

    开始没理解题意.原来destinations是指路的序号.而不是点.DP. 1 #include <stdio.h> 2 #include <string.h> 3 4 int ...

  6. HDU 5375 Gray code (简单dp)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5375 题面: Gray code Time Limit: 2000/1000 MS (Java/Ot ...

  7. hdu 2881(简单dp)

     题意:n*n的矩阵,里面有m个格子是有任务要去完成的,t,x,y表示要在第t秒到达(x,y)的格子完成任务,问你最多可以完成多少 解题思路:简单dp,将时间排个序后就是LIS #include< ...

  8. HDU 1158【简单dp】

    题意:给你一个项目,需要几个月来完成买,同时也给你每个月最少需要的工人数.并且告诉你hiring,firing每个工人的钱数,以及每个月应付每个工人的工资.求项目完成时最小花费. 这是个简单dp,思路 ...

  9. hdu 3016 Man Down(简单线段树简单DP)

    Man Down Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

最新文章

  1. tomcat与resin的比较
  2. python包引用问题
  3. 你所不知道的 Android Studio 调试技巧
  4. Hive常用函数大全一览
  5. BZOJ-1492-货币兑换cash-NOI2007-CDQ分治
  6. Git之深入解析48个经典操作场景的分析和处理,专治不会合并代码
  7. 2019年6月19日Jerry Wang的SAP SAP Cloud Connector练习
  8. mysql的数据类型可分为哪两种_mysql数据类型分为哪几种
  9. /etc/services
  10. linux i2c adapter 增加设备_Linux驱动之I2C驱动架构
  11. 前端学习(3317):connect 2
  12. 【转】03.Dicom 学习笔记-DICOM C-Get 消息服务
  13. 改了上百遍!记上海交通大学第一篇《Science》
  14. 了解自己计算机硬件设备信息
  15. 【OpenCV应用】python处理行李图像匹配项目——图像(简单)清晰化
  16. Flutter之Dialog使用和踩坑
  17. MySQL--pt-osc工具学习
  18. zabbix 自动发现 自动添加主机
  19. PMP报考 你成功了吗?
  20. 【计算机网络】1概述

热门文章

  1. 合宙Air724UG二次开发(1):搭建开发环境
  2. linux性能(一):cpu性能指标及工具
  3. java pdf 插入图片_java实现在pdf模板的指定位置插入图片
  4. vue中使用中国地图scatter散点图
  5. 2021年深圳高新技术企业申报及培育入库时间和条件是什么
  6. 追梦算法----P1072. 排队打水
  7. 《计算广告》第3版重磅出版!上一版豆瓣评分8.8
  8. 墙裂推荐的AUTOSAR科普介绍
  9. NASM doc翻译 by chio.yang@gmail.com
  10. texlive 2021 安装之后双击之后闪退解决