POJ 1661 Help Jimmy
来源:互联网 发布:mac迅雷总是开机启动 编辑:程序博客网 时间:2024/06/05 15:42
题解:jimmy跳到下一个平台,总是从当前平台的最左侧或者最右侧跳下去的。dp[i][0]表示从i个平台左边跳下去,dp[i][1]表示从第i平台右边跳下去。
#include <iostream>#include <string.h>#include <cmath>#include <cstdio>#include <algorithm>using namespace std;const int maxn = 1005;#define inf 0x3f3f3f3fint t,n,x,y,maxh;int dp[maxn][2];struct Node{ int x1,x2,h;}e[maxn];bool cmp(Node t1,Node t2){ return t1.h<t2.h;}void lefttime(int i){ //从平台左边跳下去的时间 int k = i-1; while(k>0&&e[i].h-e[k].h<=maxh){ if(e[k].x1<=e[i].x1&&e[k].x2>=e[i].x1){ dp[i][0] = min(dp[k][0]+e[i].x1-e[k].x1,dp[k][1]+e[k].x2-e[i].x1)+e[i].h-e[k].h; return; } k--; } if(e[i].h<=maxh) dp[i][0] = e[i].h; else dp[i][0] = inf;}void righttime(int i){ //从平台右边跳下去的时间 int k = i-1; while(k>0&&e[i].h-e[k].h<=maxh){ if(e[k].x1<=e[i].x2&&e[k].x2>=e[i].x2){ dp[i][1] = min(dp[k][0]+e[i].x2-e[k].x1,dp[k][1]+e[k].x2-e[i].x2)+e[i].h-e[k].h; return; } k--; } if(e[i].h<=maxh) dp[i][1] = e[i].h; else dp[i][1] = inf;}int solve(){ for(int i=1;i<=n+1;i++){ lefttime(i); righttime(i); } return min(dp[n+1][0],dp[n+1][1]);}int main(){ scanf("%d",&t); while(t--){ scanf("%d%d%d%d",&n,&x,&y,&maxh); for(int i=1;i<=n;i++){ scanf("%d%d%d",&e[i].x1,&e[i].x2,&e[i].h); } e[n+1].x1 = e[n+1].x2 = x; e[n+1].h = y; e[0].x1=-2000; e[0].x2=2000; e[0].h=0; sort(e,e+n+1,cmp); printf("%d\n",solve()); } return 0;}
阅读全文
0 0
- POJ 1661 Help Jimmy
- POJ 1661 Help Jimmy
- poj 1661 Help Jimmy
- poj 1661 Help Jimmy
- poj 1661 Help Jimmy
- POJ 1661 Help Jimmy
- Poj 1661 Help Jimmy
- poj 1661 Help Jimmy
- poj 1661 Help Jimmy
- POJ 1661 Help Jimmy
- POJ 1661 Help Jimmy
- poj 1661 help Jimmy
- POJ 1661 Help Jimmy
- POJ 1661 Help Jimmy
- POJ 1661 Help Jimmy
- POJ 1661 Help Jimmy
- poj 1661 Help Jimmy
- POJ 1661 Help Jimmy
- 移动端布局
- 使用HTML语言和CSS开发商业站点_HTML基础
- python中文注释报错解决方法
- Messages BreakPoints in 64dbg(翻译)
- leetcode 4.Median of Two Sorted Arrays
- POJ 1661 Help Jimmy
- hadoop2.7.4的安装
- OPC数据访问方法简介
- Java程序员面试题及解答(一)
- spring笔记6-事物及整合hibernate
- Java递归删除树形结构父节点
- matlab读写pgm文件
- C++中的重写、重载、重定义
- 排序算法之归并排序及利用归并排序求逆序数