《计算机算法设计与分析》啃书中。。。

   有点看不进书,就来刷个水题吧,刚开始看错题了还。

   注意:是所有测量点相差均不大于di而不是相邻两点。。。

 1 //1137.河床
 2 #include <iostream>
 3 using namespace std;
 4
 5 int max_length(int d[], int l, int r, int m) {
 6     //计算最大长度并返回
 7     //d为保存高度的数组
 8     //l为下标左界
 9     //r为下标右界
10     //m为最大高度差
11     if (l==r) return 1;
12     if (l==r-1) {
13         if ((d[l]-d[r]<=m)&&(d[l]-d[r]>=-m)) return 2;
14         else return 1;
15     }
16     //二分
17     int mid = (l+r)/2;
18     int lm = max_length(d,l,mid,m);
19     int rm = max_length(d,mid+1,r,m);
20     int mm = 1;
21     int min , max;
22     min = max = d[mid];
23     for (int i = mid-1; i >= l; i--) {
24         if ((d[i]>=max-m)&&(d[i]<=min+m)) {
25             ++mm;
26             if (d[i]<min) min = d[i];
27             else if (d[i]>max) max = d[i];
28         }
29         else break;
30     }
31     for (int i = mid+1; i <= r; i++) {
32         if ((d[i]>=max-m)&&(d[i]<=min+m)) {
33             ++mm;
34             if (d[i]<min) min = d[i];
35             else if (d[i]>max) max = d[i];
36         }
37         else break;
38     }
39     //返回最大值
40     return (lm>rm?lm:rm)>mm?(lm>rm?lm:rm):mm;
41 }
42
43 int main() {
44     int n, m;
45     cin>>n>>m;
46     int d[n];
47     for (int i = 0; i < n; i++) cin>>d[i];
48     cout<<max_length(d,0,n-1,m)<<endl;
49     return 0;
50 }

  也不知道我是不是写的有点麻烦。。。

转载于:https://www.cnblogs.com/zmj97/p/5431888.html

sicily 1137 河床 (二分分治)相关推荐

  1. 2019牛客暑期多校训练营(第一场) A Equivalent Prefixes ( st 表 + 二分+分治)

    链接:https://ac.nowcoder.com/acm/contest/881/A 来源:牛客网 Equivalent Prefixes 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/ ...

  2. Looksery Cup 2015 F. Yura and Developers(单调栈+二分+分治)(难*)

    题目链接 题意:给定一个数组,问有多少区间满足:去掉最大值之后,和是k的倍数. 思路:日后补. #include<bits/stdc++.h> using namespace std; t ...

  3. sicily题目分类

    sicily题目分类 1. 编程入门 2. 数据结构 3. 字符串 4. 排序 5. 图遍历 6. 图算法 7. 搜索:剪枝,启发式搜索 8. 动态规划/递推 9. 分治/递归 10. 贪心 11. ...

  4. [sicily]部分题目分类

    sicily题目分类 1. 编程入门 2. 数据结构 3. 字符串 4. 排序 5. 图遍历 6. 图算法 7. 搜索:剪枝,启发式搜索 8. 动态规划/递推 9. 分治/递归 10. 贪心 11. ...

  5. Sicily 题目分类

    依照自己水平挑着做→ →~~ 1. 编程入门 2. 数据结构 3. 字符串 4. 排序 5. 图遍历 6. 图算法 7. 搜索:剪枝,启发式搜索 8. 动态规划/递推 9. 分治/递归 10. 贪心 ...

  6. 中大SICILY分类

    原文出处:http://linguifan2010.blog.163.com/blog/static/1315127442010102131322482/ ********************** ...

  7. Soj题目分类 python代码)

    正值期末复习,刷点soj放松下 但想看看能不能在找点关于数据结构的题目来做一下. 在网上看到有不少人上传过那些关于部分SOJ题目的描述,但是说实话有些乱 不过我看到有个网页中包含的一个类似文档的东西, ...

  8. 编程题目分类(剪辑)

    1. 编程入门 2. 数据结构 3. 字符串 4. 排序 5. 图遍历 6. 图算法 7. 搜索:剪枝,启发式搜索 8. 动态规划/递推 9. 分治/递归 10. 贪心 11. 模拟 12. 算术与代 ...

  9. 初学者acm的练习题指南

    上机练习题参考题 忘了在哪找的啦~~希望对大家有帮助呦 <!--[if !supportLists]-->1.    <!--[endif]-->Programming Bas ...

最新文章

  1. java cutdown_Java并发程序入门介绍
  2. waf可以查看post请求吗_WAFNinja:一款绕过WAF的渗透工具
  3. 如何实现可以获取最小值的栈?
  4. 让Win32窗口程序拥有控制台窗口
  5. 华为笔记本Win11更新时由于驱动问题引起蓝牙鼠标经常断开问题解决方法
  6. Echarts数据可视化legend图例,开发全解+完美注释
  7. LINUX加载库时与WINDOWS有何不同
  8. 关于添加文件删除权限
  9. Flash:Flash动画设计案例集合(广告条制作/遮罩动画/扫光动画/书法手写遮罩动画)图文教程之详细攻略
  10. 从0到1搭建大数据平台之数据采集篇
  11. radon变换(c++、OpenCV实现)
  12. 什么是cosmos?
  13. 计算机新建里没有word,电脑新建中没有word和excel怎么回事
  14. 挑选微信h5开发制作公司的标准是什么?
  15. PyQt5 密码输入框
  16. 微信小程序计算时间差
  17. 计算机软件和应用审稿可以加急吗,计算机类期刊审稿周期
  18. 树莓派3B+神经计算棒实时人脸追踪机器眼
  19. 安润网提供的游戏下载,您可以到安润网的论坛中下载,无须注册。
  20. win打印显示打印服务器错误,由于打印机的当前设置有问题,windos无法打印_由于打印机设置word无法打印解决方法...

热门文章

  1. CSS3 keyframes动画实现弹跳效果
  2. Python 继承标准类时发生了什么
  3. 简述java异常处理机制
  4. IOS 总结:NSArray,NSSet,NSDictionary
  5. shiro登陆流程源码详解
  6. 被coding.net坑了, Git 动态Pages要停掉...
  7. 树状数组模板1——单点修改区间查询
  8. Win8Metro(C#)数字图像处理--2.12Sobel边缘检测
  9. ava RMI 框架(远程方法调用)
  10. js中的hasOwnProperty和isPrototypeOf方法