题意

1 主人公从0开始开始跑
2 使用速度非递减技能
3 警察记录下了多个整数时间点他的位置 整数时间点不明确
让我们求主人公所花费的最小时间跨越过最后一个位置点

分析

本体选用逆推处理
为啥用逆推 因为速度是非递减的 如果从前面推 会导致不断重复修改 前面的时间 时间不好把握最小
所以从后往前看每一段的速度就是递减的
为了保证最小 所以不如让最后一段的时间是个1 这里贪心一下 当求出最后一段的速度后 前面的每一段的速度都只能相同 或更慢 决不能更快
由于题目说明每个时间点是整数 所以每个时间点按照后面一段的速度求出来的时间一定是最快的
因为只能小于等于后面的速度 所以按照后面的速度求出来的时间必定是最快的 由于是整数所以
要向上取整 向下取整可能会比后面的速度快 不符题意 只能向上取整
开始速度用double做 一直WA 后来改用分数做后就A了- -
还是精度的地方惹不起 double的地方惹不起 还有ceil等返回值为double的地方惹不起

CODE

#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
typedef long long ll;
const int maxn = 1e5+5;
ll a[maxn];
int main()
{int t;scanf("%d",&t);for(int j=1;j<=t;j++){int n;scanf("%d",&n);for(int i=1;i<=n;i++)scanf("%lld",&a[i]);ll sum=0,lastt=0;int lvm=0,lvz=0;for(int i=n-1;i>=0;i--){ll p = a[i+1]-a[i];if(i==n-1)lastt=1,sum++;else{ll t = (ll)ceil(p*lastt/(double)lvz);//如果本段的距离小于上一段的 那么本段的速度不能比上一段的高 只能>=lastv 就直接带入上一段的速度取ceil 表示慢一点由于是整数所以就只能是慢一点sum+=t; //如果本段距离大于上一段的 那么就用上一段的速度 求出t来向上取整lastt=t;}lvm = lastt,lvz = p;}printf("Case #%d: %lld\n",j,sum);}return 0;
}

HDU-5935 Car 逆推 贪心 精度相关推荐

  1. hdu 5063 操作逆推+mul每次要*2%(modo - 1)

    http://acm.hdu.edu.cn/showproblem.php?pid=5063 只有50个询问,50个操作逆推回去即可,注意mul每次要*2%(modo - 1)因为是指数! #incl ...

  2. hdu 3853 LOOPS (概率dp 逆推求期望)

    题目链接 LOOPS Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 125536/65536 K (Java/Others) Tot ...

  3. 独辟蹊径:逆推Krpano切图算法,实现在浏览器切多层级瓦片图

    独辟蹊径:逆推Krpano切图算法,实现在浏览器切多层级瓦片图 前言 1.功能简介 2.回顾krpano切图 3.krpano切图最常用的方式 4.瓦片地图金字塔模型 ==正片开始== 5.前置知识介 ...

  4. HDU 2795 Billboard (线段树+贪心)

    HDU 2795 Billboard (线段树+贪心) 手动博客搬家:本文发表于20170822 21:30:17, 原地址https://blog.csdn.net/suncongbo/articl ...

  5. Roguelike+RPG如何给玩家刺激的游戏体验? 《我功夫特牛》系统逆推

    一.游戏介绍及游玩情况 <我功夫特牛>是一款武侠题材,火柴人画风的休闲游戏,玩法上笔者认为它是Roguelike+RPG组合型游戏,即单局死亡重置+角色养成游戏.其游戏内核,既有战斗和探索 ...

  6. 逆推继承看原型 函数的角色 函数声明和函数表达式的区别 函数中this指向的问题

    逆推继承看原型 <!DOCTYPE html> <html lang="en"> <head><meta charset="UT ...

  7. [剑指offer][JAVA]面试题第[46]题[把数字翻译成字符串][递归][逆推]

    [问题描述][中等] 给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 "a" ,1 翻译成 "b",--,11 翻译成 "l", ...

  8. 全排列及相关扩展算法(四)——原始中介数通过逆推求原排列算法

    1.中介数逆推原排列:上一章我们讲到了中介数,通过一个排列可以很方便地求数它的中介数,通过中介数也可以很方便地求出排位序号.但是通过中介数逆推原排列就不是那么容易了.因为我们每求一位数,都需要对比其前 ...

  9. 二叉树的深度优先遍历逆推

    二叉树的深度优先遍历逆推 二叉树的深度优先遍历有三种方式,分别叫做先序遍历(preorder).中序遍历(inorder)和后序遍历(postorder),它们之间的不同在于访问每个节点的次序不同. ...

最新文章

  1. 2017年50道Java线程面试题
  2. 什么是死锁(deadlock)?
  3. android lottie字体json,lottie-android
  4. VTK:相互作用之SelectAVertex
  5. java 虚拟机_浅谈Java虚拟机内存区
  6. SAP Analytics Cloud里根据数据的经纬度绘制地图
  7. java dsp_GitHub - Onemeaning/JavaDsp: 数字信号处理(DSP)方面的Java封装,包含常用的一些处理方法,如滤波、信号变换等等。...
  8. html中依次展开的搜索框,jQuery+CSS3动画展开收缩搜索框特效
  9. go系列(1)- linux下安装go环境
  10. vue.js点击更多加载更多数据,双数组合并
  11. iPhone 12性能首曝:6GB内存、A14“挤牙膏”
  12. c语言if case语句怎么用,这样的case和if一起运用有问题吗?
  13. window10设置文件夹备注
  14. 【转】BLE开发的各种坑
  15. 使用navicat无法登陆oracle 数据库
  16. 某选煤厂智能智能化解决方案
  17. 计算机英语词汇带音标,计算机专用英语词汇1500词(带音标).doc
  18. ubuntu查看电脑配置信息
  19. WRF模式案例运行初体验--飓风示例全过程记录
  20. 时间“照妖镜”のmanic time

热门文章

  1. HBase 手动 flush 机制梳理
  2. Android获取最新发送短信的基本信息,没有之一
  3. 所谓语音合成 是计算机根据语言学,计算语言学完整1
  4. Python爬虫自学之第(④)篇——强大的正则表达式,re模块
  5. AsyncTask使用详解
  6. Web中Servlet
  7. ubuntu ifconfig只有lo没有ens33的问题
  8. sqlserver note
  9. 通配符的匹配很全面, 但无法找到元素 'mvc:annotation-driven' 的声明
  10. 【C语言进阶深度学习记录】八 C语言中void的分析