题目链接:http://poj.org/problem?id=1661

解题报告:

1、老鼠每次来到一块木板上都只有两条路可以走,可以使用递归

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <memory.h> #define _MAX 1010
#define INF 0x3f3f3f3f struct Platform
{
int lx;//木板左端的坐标
int rx;//木板右端的坐标
int h;//木板距离地面的高度
} p[_MAX]; int MAX,n;
int leftmin[_MAX];//从每条木板左端到地面的最短时间
int rightmin[_MAX]; int My_Compare(const void *e1,const void *e2)//快速排序中用到,较高的木板放在前面
{
struct Platform *p1,*p2;
p1=(struct Platform*)e1;
p2=(struct Platform*)e2;
return p2->h-p1->h;
} int mintime(int L,int flag)//从编号为L的木板上跳下,flag 表示将要从木板跳下的方向,flag=1时为左边跳下
{
int y=p[L].h;
int i,x,ltime,rtime;
if(flag)
x=p[L].lx;//x为jimmy的坐标,表示来到了木板的左端
else x=p[L].rx;
for(i=L+; i<=n; i++) //开始找木板
{
if(p[i].lx<=x&&p[i].rx>=x)
break;
}
if(i<=n)//找到木板但是会摔死
{
if(y-p[i].h>MAX)
return INF;
}
else//下面没有木块了
{
if(y>MAX)
return INF;
else return y;//没有木板直接跳下来
}
ltime=y-p[i].h+x-p[i].lx;
rtime=y-p[i].h+p[i].rx-x;
if(leftmin[i]==-)
leftmin[i]=mintime(i,);
if(rightmin[i]==-)
rightmin[i]=mintime(i,);
ltime+=leftmin[i];
rtime+=rightmin[i];
if(ltime<rtime)
return ltime;
else return rtime;
} int main()
{
int i,cases,x,y;
scanf("%d",&cases);
while(cases--)
{
scanf("%d%d%d%d",&n,&x,&y,&MAX);
memset(leftmin,-,sizeof(leftmin));
memset(rightmin,-,sizeof(rightmin));
p[].lx=x;
p[].rx=x;
p[].h=y;
for( i=; i<=n; i++)
{
scanf("%d%d%d",&p[i].lx,&p[i].rx,&p[i].h);
}
qsort(p,n+,sizeof(struct Platform),My_Compare);
printf("%d\n",mintime(,));
}
return ;
}

最新文章

  1. 第十二篇、Swift_Sqlite的使用
  2. MySQL的EXPLAIN命令详解(转)
  3. Linux 精准获取进程pid--转
  4. hdoj 1072 Nightmare
  5. python+selenium+Eclipse安装
  6. Erlang/OTP设计原则(文档翻译)
  7. 手机termux上安装msfconsole
  8. HUD-1999-不可摸数
  9. gcc链接,去掉不用的函数和data
  10. xampp/apache启动失败解决方法
  11. [PHP] 算法-找出两个链表的第一个公共结点的PHP实现
  12. 开发板测试-GPRS
  13. 桌面图标未读消息(小米,sony,三星手机)
  14. 第十三次CCF第四题 1803——04 博弈
  15. architecture and business process modelling
  16. Vue3.0项目快速搭建
  17. vue打包以及在Apache环境下的配置
  18. anadroid环境搭建
  19. JNDI是什么?
  20. Windows系统的文件浏览器如何触发刷新

热门文章

  1. Postgres数据库基本介绍
  2. Leetcode: Perfect Rectangle
  3. PPTP部署文档
  4. 20145207 《Java程序设计》第4周学习总结
  5. UML:组件图
  6. paper 52 :windows7环境下theano安装
  7. XStream xml转java对象
  8. OpenStack 的windows镜像的开启办法
  9. 160905、c3p0详细配置
  10. JS实现复制网页内容自动加入版权内容代码和原文链接