http://acm.hdu.edu.cn/showproblem.php?pid=5037

有只青蛙踩石子过河,河宽m,有n个石子坐标已知。青蛙每次最多跳L。现在可以在河中再放一些石子,使得青蛙过河跳的次数最多。

青蛙是贪心的,如果它现在在cur位置跳不动了,且它上一次所在位置为pre。那么God肯定要把新石子放在max(cur,pre+L)+1的位置。

使用模拟+周期优化

#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <cstring>
#include <string>
#include <bitset>
#include <map>
#include <iostream>
#include <algorithm>
using namespace std;
#define RD(x) scanf("%d",&x)
#define RD2(x,y) scanf("%d%d",&x,&y)
#define clr0(x) memset(x,0,sizeof(x))
typedef long long LL;
const int maxn = 200005;
int n,m,l,s[maxn];
int main (){int  _,cas = 1;RD(_);while(_--){printf("Case #%d: ",cas++);RD(n);RD2(m,l);for(int i = 0;i < n;++i)RD(s[i]);sort(s,s+n);s[n++] = m;int ans = 0,pre = -l,cur = 0;for(int i = 0;i < n;++i){//cout<<i<<endl;int t = (s[i] - cur)/(l+1);pre += t*(l+1);ans += t*2;if(s[i] - pre <= l){cur = s[i];}else if(s[i] - pre > l){ans++;pre = cur + t*(l+1);cur = s[i];}}printf("%d\n",ans);}return 0;
}

转载于:https://www.cnblogs.com/zibaohun/p/4046820.html

hdu 5037 周期优化相关推荐

  1. HDU - 相遇周期(gcd,lcm)

    HDU - 相遇周期 而卫星是进行这些探测的重要工具,我们的问题是已知两颗卫星的运行周期,求它们的相遇周期. Input 输入数据的第一行为一个正整数T, 表示测试数据的组数. 然后是T组测试数据. ...

  2. HDU - 相遇周期

    http://acm.hdu.edu.cn/showproblem.php?pid=1713 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: ...

  3. HDU 5037 Frog

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5037 题意:一只青蛙从0跳到m,最远能跳l,只能在石头上跳.给出一开始n个石头的位置,我们是上帝,能放 ...

  4. hdu 5037 Frog 贪心 dp

    哎,注意细节啊,,,,,,,思维的严密性..... 11699193 2014-09-22 08:46:42 Accepted 5037 796MS 1864K 2204 B G++ czy Frog ...

  5. HDU 3507 斜率优化入学习

    [题目链接] 点击打开链接 [题意]大概题意就是要输出N个数字a[N],输出的时候可以连续的输出,每连续输出一串,它的费用是 "这串数字和的平方加上一个常数M". [写在前面] 思 ...

  6. HDU 6395 灵性优化

    我知道为什么这道题A的人这么少了 由于数论分块的特性 这个块会在前边特别密 来后又来个矩阵快速幂 复杂度会很高 还不如一个一个手推 和那个等差数列异或和的优化思想是一样的 都是对数论分块的前半部分的优 ...

  7. HDU 5037 Frog(2014年北京网络赛 F 贪心)

    开始就觉得有思路,结果越敲越麻烦...  题意很简单,就是说一个青蛙从0点跳到m点,最多可以跳l的长度,原有石头n个(都仅表示一个点).但是可能跳不过去,所以你是上帝,可以随便在哪儿添加石头,你的策略 ...

  8. hdu 5037 Frog(贪心)

    题意:有一只青蛙想从0点跳到M点.从0点到M点有N块石头,给出你N块石头的位置.青蛙跳跃的长度为0~L.你上帝,当青蛙无法跳跃的时候你可以帮助它. 可以无限制的在池塘内任何一点添加石头,并且你是仁慈的 ...

  9. 第八十二期:掌握这些监控报警优化技巧,百万年薪不在话下!

    运维工程师面试者第一个问题是:需要值班吗?笔者自己也曾经历过月入十万的时期,在那个时候,数个系统同时发布下一代版本,而老系统还需要过渡很长时间,工作量直接翻倍. 作者:焦振清 运维工程师面试者第一个问 ...

最新文章

  1. Python教程:跳出多层循环for、while
  2. redis单主机多实例
  3. 文件夹查找文件(一个文件夹文件查找函数 Delphi)
  4. 办公自动化-演练-统计日报的演练-0223
  5. 常用的JavaScript工具类库收藏
  6. 12.5 防止死锁的加锁机制
  7. PyCharm入门使用教程-最强版本
  8. Sentinel卫星数据
  9. AutoCAD2015官方原版软件下载
  10. 一文精讲Wireshark的抓包和分析
  11. 3dmax烘焙贴图主要设置之Flatiron
  12. 【C++ 开根号和平方运算】
  13. 从百度指数到微信指数,我们正进入“数据世界”
  14. C盘pc的Android文件夹,清理系统盘C盘的无用文件
  15. MATLAB 神经网络NAR时间序列做预测
  16. java使用网易企业邮箱,发送邮件失败
  17. JavaEE——作业管理系统期末总结
  18. 高数——换元法(2)
  19. wifi网络接入原理(中)——认证Authentication
  20. UE4 后期处理 PostProcess

热门文章

  1. 基于稀疏表示的人脸识别 (SRC,LASRC,RASL,MRR)
  2. Hibernate 一对一、一对多、多对多注解cascade属性的总结
  3. Redis学习手册(Sorted-Sets数据类型)
  4. 在Asp.net中使用JQuery插件之jTip
  5. 这个ERP的冬天好冷啊!
  6. Spring bean的生命流程
  7. 表单验证自定义二选一
  8. R中基本命名(未完)
  9. 剑指Offer——网易笔试之解救小易
  10. [LeetCode] Excel Sheet Column Number