比较简单的一道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. linux驱动:TI+DM8127+GPIO(五)之plarform
  2. etcd工作原理和CentOS 7部署指南
  3. ansys fluent udf manual 下载_Fluent内置流固耦合01 使用流程
  4. Keepalived 添加脚本配置监控haproxy方案
  5. GrapeCity Documents for Excel 与 Apache POI 功能对比
  6. 力扣-111. 二叉树的最小深度
  7. Android基础 (八)手机多媒体
  8. Orale查询返回相似度基数个数
  9. 中国电信天翼网关路由器后台登录useradmin用户忘记密码的解决方法默认密码管理员密码工作人员密码
  10. lastinsertid mysql_mysql - Go语言中文网 - Golang中文社区
  11. win7计算机锁频图片怎么设置,Win7电脑锁屏壁纸怎么设置?Win7系统设置锁屏壁纸的方法...
  12. Typora自制主题
  13. STM32F10X的IAP编程详解——开发指南
  14. vscode 使用beautify插件格式化.vue文件
  15. 数据库防火墙安全技术解析与实践
  16. 粤通院 招聘FPGA工程师
  17. 线段树——区间合并(模板题)
  18. springboot启动失败的原因及其解决方法
  19. 如何才能学好java框架
  20. 怎样记住英语单词的意思

热门文章

  1. Biome-BGC生态系统模型区域模拟
  2. [の白嫖站]计算机图形学作业 瞎写的 区域填充字符生成反走样
  3. LXD介绍+配置使用
  4. SQL Server中sysobjects表结构
  5. 郑州分销小程序开发分销结算设置介绍
  6. win10更新后chrome字体模糊解决办法
  7. 正则表达式初级(记忆)
  8. 点聚WebOffice-使用(更新中)
  9. 超级食物引爆超级品类,蓝区沙棘如何引领百亿风口
  10. 新至强训练推理增效十倍,英特尔CPU加速AI更上一层楼