sicily 1137 河床 (二分分治)
《计算机算法设计与分析》啃书中。。。
有点看不进书,就来刷个水题吧,刚开始看错题了还。
注意:是所有测量点相差均不大于di而不是相邻两点。。。
//1137.河床
#include <iostream>
using namespace std; int max_length(int d[], int l, int r, int m) {
//计算最大长度并返回
//d为保存高度的数组
//l为下标左界
//r为下标右界
//m为最大高度差
if (l==r) return ;
if (l==r-) {
if ((d[l]-d[r]<=m)&&(d[l]-d[r]>=-m)) return ;
else return ;
}
//二分
int mid = (l+r)/;
int lm = max_length(d,l,mid,m);
int rm = max_length(d,mid+,r,m);
int mm = ;
int min , max;
min = max = d[mid];
for (int i = mid-; i >= l; i--) {
if ((d[i]>=max-m)&&(d[i]<=min+m)) {
++mm;
if (d[i]<min) min = d[i];
else if (d[i]>max) max = d[i];
}
else break;
}
for (int i = mid+; i <= r; i++) {
if ((d[i]>=max-m)&&(d[i]<=min+m)) {
++mm;
if (d[i]<min) min = d[i];
else if (d[i]>max) max = d[i];
}
else break;
}
//返回最大值
return (lm>rm?lm:rm)>mm?(lm>rm?lm:rm):mm;
} int main() {
int n, m;
cin>>n>>m;
int d[n];
for (int i = ; i < n; i++) cin>>d[i];
cout<<max_length(d,,n-,m)<<endl;
return ;
}
也不知道我是不是写的有点麻烦。。。
sicily 1137 河床 (二分分治)的更多相关文章
- 2019牛客暑期多校训练营(第一场)A Equivalent Prefixes(单调栈/二分+分治)
链接:https://ac.nowcoder.com/acm/contest/881/A来源:牛客网 Two arrays u and v each with m distinct elements ...
- luogu P5473 [NOI2019]I 君的探险 交互 随机 二分 分治 整体二分
LINK:I 君的探险 神仙题! 考虑一个暴力的做法 每次点亮一个点 询问全部点 这样询问次数为 \(\frac{n\cdot (n-1)}{2}\) 可以通过前5个点. 考虑都为A的部分分 发现一个 ...
- BZOJ 2738 子矩阵第k大 | 二维树状数组 整体二分 分治
BZOJ 2738 "矩阵乘法"(子矩阵第k大) 题意 给出一个矩阵,多次询问子矩阵中第k大的数是多少. 题解 我做这道题之前先照着这道题出了一道题,是这道题的一维版本,在这里:h ...
- 2019牛客暑期多校训练营(第一场) A Equivalent Prefixes ( st 表 + 二分+分治)
链接:https://ac.nowcoder.com/acm/contest/881/A 来源:牛客网 Equivalent Prefixes 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/ ...
- sicily 题目分类
为了方便刷题,直接把分类保存下来方便来找. 转自:http://dengbaoleng.iteye.com/blog/1505083 [数据结构/图论] 1310Right-HeavyTree笛卡尔树 ...
- CDQ分治笔记
以前一直不会CDQ……然后经常听到dalao们说“这题直接CDQ啊”“CDQ不就秒了吗”的时候我只能瑟瑟发抖QAQ CDQ分治 其实CDQ分治就是二分分治,每次将$[l,r]$的问题划分为$[l,mi ...
- LeetCode Top 100 Liked 点赞最高的 100 道算法题
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 公众号:负雪明烛 本文关键词:刷题顺序,刷题路径,好题,top100,怎么刷题,Leet ...
- POJ 1845 求a^b的约数和
题目大意就是给定a和b,求a^b的约数和 f(n) = sigma(d) [d|n] 这个学过莫比乌斯反演之后很容易看出这是一个积性函数 那么f(a*b) = f(a)*f(b) (gcd(a,b) ...
- Knowledge_SPA——精研查找算法
首先保证这一篇分析查找算法的文章,气质与大部分搜索引擎搜索到的文章不同,主要体现在代码上面,会更加高级,会结合到很多之前研究过的内容,例如设计模式,泛型等.这也与我的上一篇面向程序员编程--精研排序算 ...
随机推荐
- linux系统oracle服务自启动
终于知道为什么自启动脚本一直无法成功执行,原来都是空格不对惹的祸.具体步骤说明如下: 1.修改dbstart和dbshut脚本 dbstart脚本默认值启动oracle服务,不启动监听服务,如果想在启 ...
- docker迁移步骤
1. 创建快照:docker commit -p 30b8f18f20b4 container-backup (可以通过docker images 查看docker镜像) 2. 镜像保存在本地机器中: ...
- 13.ubuntu下Qt5无法使用中文的问题解决
1.首先安装fcitx-frontend-qt5 sudo apt-get install fcitx-frontend-qt5 这个应该是默认安装的,然后查看fcitx-frontend-qt5 的 ...
- WPF向系统发送消息 并传递结构体
场景 :需要开发一个通讯组件 流程为:界面-开启接收服务-通过发送组件发送信息到 其他客户端和服务端 接受服务接收其他客户端发送的消息 需要传递给对应组件或者界面 因此会出现类库重复引用问题.因为采用 ...
- .net 三大核心对象
.net 三大核心对象 HttpRequest 现在总算轮到第一个核心对象出场了.MSDN给它作了一个简短的解释:“使 ASP.NET 能够读取客户端在 Web 请求期间发送的 HTTP 值.”这个解 ...
- maridb Error 'Operation DROP USER failed for
数据库版本:mariadb 10.0.12 主库删除多余的用户名,因从库没有此信息造成主从故障! 报错信息如下:Error 'Operation DROP USER failed for 'use ...
- 《图解HTTP》摘要
网络基础TCP/IP 使用Cookie进行状态管理 HTTP首部 确保Web安全的HTTPS 1.网络基础TCP/IP 2.使用Cookie进行状态管理:HTTP是无状态协议. 3.HTTP首部 HT ...
- Windows10 下安装 Mongodb
一.先登录Mongodb官网https://www.mongodb.com/download-center#community 下载 安装包.32.64位的都行.
- 在centos里安装Nginx
(1)下载Nginx的RPM包 wget http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx ...
- 升级ruby到2.0
本文部分内容转载,如侵犯个人利益请联系博客管理员及时删除,或留言之评论区 一.安装库 Yum install –y gcc* openssl* wget 二.安装ruby wget https://c ...