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——精研查找算法
首先保证这一篇分析查找算法的文章,气质与大部分搜索引擎搜索到的文章不同,主要体现在代码上面,会更加高级,会结合到很多之前研究过的内容,例如设计模式,泛型等.这也与我的上一篇面向程序员编程--精研排序算 ...
随机推荐
- Oracle数据库中闪回恢复的详细分析
Oracle9i开始提供闪回查询,以便能在需要的时候查到过去某个时刻的一致性数据,这是通过Undo实现的.这个功能有很大的限制,就是相关事务的undo不能被覆盖,否则就无力回天了.oracle10g大 ...
- Laravel异常处理
Laravel异常处理 标签(空格分隔): php 自定义异常类 <?php namespace App\Exceptions; use Throwable; use Exception; cl ...
- htmlunit 简单操作
首先我们新建一个Maven普通客户端项目,然后打开pom.xml 引入htmlunit支持: <dependency> <groupId>net.sourceforge.htm ...
- ROS-URDF文件标签解读
前言:URDF文件标签解读.margin: auto; width: 700px; height: 100px; ; width: 700px; text-align: center; 一.连杆(li ...
- 移动端 | table 布局
<table border=” cellspacing="> <caption>表格标题</caption> <tr> <td alig ...
- c# rc4算法,加密解密类
rc4算法,原理,以密匙生成256位的密匙流,然后以车轮式滚过源数据异或加密. /* * 由SharpDevelop创建. * 用户: YISH * 日期: 04/04/2015 * 时间: 03:0 ...
- 伍、ajax
一.ajax的概念 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新. 传统的网页(不使用 AJAX)如果需要更新 ...
- [NOIP补坑计划]NOIP2015 题解&做题心得
感觉从15年开始noip就变难了?(虽然自己都做出来了……) 场上预计得分:100+100+60~100+100+100+100=560~600(省一分数线365) 题解: D1T1 神奇的幻方 题面 ...
- 使用面向对象技术创建高级 Web 应用程序
作者: 出处: 使用面向对象技术创建高级 Web 应用程序 来源:开源中国社区 作者:oschina 最近,我面试了一位具有5年Web应用开发经验的软件开发人员.她有4年半的JavaScript编程经 ...
- [置顶]
使用 maven 插件 maven-shade-plugin 对可执行 java 工程及其全部依赖 jar 进行打包
作者:chenzhou123520 出处:http://chenzhou123520.iteye.com/blog/1706242 使用 maven 插件 maven-shade-plugin 对 j ...