HDU 3486 Interviewe RMQ

题意:

\(n\)个数分成\(m\)段相邻区间,每段区间的长度为\(\left \lfloor \frac{n}{m} \right \rfloor\),从每段区间选一个最大值,要让所有的最大值之和大于\(k\)。求最小的\(m\)

分析:

预处理RMQ,维护区间最大值。
然后二分\(m\),将每段区间最大值加起来判断即可。

#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;const int maxn = 200000 + 10;
const int logmaxn = 20;int n, k;
int a[maxn], d[maxn][logmaxn];void init() {for(int i = 0; i < n; i++) d[i][0] = a[i];for(int j = 1; (1<<j) <= n; j++)for(int i = 0; i + (1<<j) - 1 < n; i++)d[i][j] = max(d[i][j-1], d[i+(1<<(j-1))][j-1]);
}int query(int L, int R) {int k = 0;while((1<<(k+1)) <= R-L+1) k++;return max(d[L][k], d[R-(1<<k)+1][k]);
}bool check(int x) {int l = n / x;int tot = 0;for(int i = 0; i < x; i++) {tot += query(i * l, (i+1) * l - 1);if(tot > k) return true;}return false;
}int main()
{while(scanf("%d%d", &n, &k) == 2) {if(n < 0 && k < 0) break;int sum = 0, Max = 0;for(int i = 0; i < n; i++) {scanf("%d", a + i);sum += a[i];Max = max(Max, a[i]);}if(Max > k) { printf("1\n"); continue; }if(sum <= k) { printf("-1\n"); continue; }init();int ans = n, L = 1, R = n;while(L < R) {int mid = (L + R) / 2;if(!check(mid)) L = mid + 1;else R = mid;}printf("%d\n", L);}return 0;
}

转载于:https://www.cnblogs.com/AOQNRMGYXLMV/p/4999399.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/404658.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[react] 举例说明useState

[react] 举例说明useState import { useState } from react; const [count, setCount] useState(0); function Demo() {const doAdd1 () > {setCount(prevCount 1);};const doAdd2 () > {setCount(prevCount > prevCount 1);};return <><h1>{count}…

win10 vscode 无法激活python 虚拟环境的解决办法

一、powershell中 python创建虚拟环境无法激活 二、管理员模式运行powershell&#xff0c;执行策略更改&#xff1a; Set-ExecutionPolicy RemoteSigned&#xff0c;输入y 三、vscode再次激活&#xff1a; .\flask-venv\Scripts\activate 激活成功。 四、退出虚拟环境&#x…

客户端获取游客IP,获取客户地理信息,展示地图

参考自&#xff1a;http://www.cnblogs.com/phphuaibei/archive/2011/09/08/2171903.html 三维地图&#xff0c;目前只有都市圈和E都市有提供。 Google街景可以在浏览器安装google earth插件后显示。转载于:https://blog.51cto.com/icersummer/724481

vscode 升级过后自带的四种终端

一、版本 二、终端 自带了四种默认配置终端&#xff0c;删除以前Edit in settings.json的“terminal.integrated.shell.windows”字段。 四种默认终端&#xff1a; powershellwslcmdjavaScript Debug Terminal

[react] 使用ES6的class定义的组件不支持mixins了,那用什么可以替代呢?

[react] 使用ES6的class定义的组件不支持mixins了&#xff0c;那用什么可以替代呢&#xff1f; HOC 高阶组件是一个以组件为参数并返回一个新组件的函数。HOC 运行你重用代码、逻辑和引导抽象。最常见的可能是 Redux 的 connect 函数。除了简单分享工具库和简单的组合&#xf…

接口委托实现

1 TFMDesign class(TFMBase, IDataSetOperator)2 public3 //注意名称要不一样,重新定义保存方法4 procedure IDataSetOperator.DoApplyUpdates ApplyUpdates;5 6 //重写保存方法7 procedure ApplyUpdates; stdcall;8 9 //接口用对象10 property …

2015第19本:异类--不一样的成功启示录

一位移民加拿大的高中同学在2012年回国探亲&#xff0c;聚会时曾推荐了《异类--不一样的成功启示录》这本书&#xff0c;英文书名叫《Outliers - the story of success》&#xff0c;一直没有系统地看完。在整理Omnifocus的读书列表时又发现了此书&#xff0c;还是趁这个机会把…

windows10 安装mqtt服务器和client客户端进行本地调试

一、安装mqtt服务器 使用emqx作为mqtt服务器&#xff0c;下载emqx-windows-4.3.8.zip。 emqx-windows-4.3.8.zip 其他版本&#xff1a;Directory listing for broker: / | EMQ 解压到自定义目录位置&#xff0c;在cmd窗口进入解压后的bin目录 cd /d D:\Tools\exqxServer\em…

I,P,B帧和PTS,DTS的关系

From: http://www.cnblogs.com/qingquan/archive/2011/07/27/2118967.html 基本概念&#xff1a; I frame &#xff1a;帧内编码帧 又称intra picture&#xff0c;I 帧通常是每个 GOP&#xff08;MPEG 所使用的一种视频压缩技术&#xff09;的第一个帧&#xff0c;经过适度地压…

[react] 为何说虚拟DOM会提高性能?

[react] 为何说虚拟DOM会提高性能&#xff1f; 虚拟dom相当于在js和真实dom中间加了一个缓存&#xff0c;利用dom diff算法避免了没有必要的dom操作&#xff0c;从而提高性能 个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定…

不断学习才能进步!

51CTO确实是一个很不错的技术性很强的社交网络&#xff0c;在这里我发现有很多东西值得我去学习&#xff0c;只不过现在从事教师职业&#xff0c;没有太多的时间。但我只要有时间就会来学习的&#xff0c;希望大家能够多多帮助&#xff01;转载于:https://blog.51cto.com/anday…

Windows Subsystem for Linux(WSL)安装emqx

一、安装 win10自带linux子系统&#xff0c;wsl ubuntu&#xff0c;安装方法同ubuntu。 脚本一键安装&#xff1a;curl https://repos.emqx.io/install_emqx.sh | bash 二、使用 $ emqx start emqx 4.0.0 is started successfully! $ emqx_ctl status Node emqx127.0.0.1 i…

丰富“WinForms” 的一个别样项目(学生管理)

一个别样的WinForms项目&#xff0c;他并没多么的新颖&#xff0c;但是它的用处确实有点多&#xff0c;或许会有你需要的地方&#xff1b;如果你对WinForms中那么多控件无法把握&#xff0c;又或者是你根本就不懂&#xff0c;那我觉得你应该好好看看&#xff0c;如果一个人的人…

opengl与Directx的区别

From: http://blog.163.com/xtdx888888126/blog/static/2955727520083661133565/ OpenGL 只是图形函数库。 DirectX 包含图形, 声音, 输入, 网络等模块。 单就图形而论, DirectX 的图形库性能不如 OpenGL OpenGL稳定&#xff0c;可跨平台使用。但 OpenGL 多需要显卡支持. …

[react] shouldComponentUpdate方法是做什么的

[react] shouldComponentUpdate方法是做什么的 shouldComponentUpdate是React组件的生命周期&#xff0c;在组件更新后触发&#xff0c;该方法继承子React.Component.方法的作用是可以在内部比较更新前后的state和props的值&#xff0c;手动控制当前组件是否需要执行render函数…

OSPF区域不能与area 0 相连的解决方法

有些时候&#xff0c;由于区域包含的路由器过多或区域的地理位置原因等&#xff0c;造成网络中配置的OSPF区域&#xff08;非area 0&#xff09;不能够与area 0相连。大家都知道&#xff0c;在OSPF的所有区域内&#xff0c;area 0 是骨干区域&#xff0c;非0区域都要与area0相连…

Spark从HDFS上读取JSON数据

代码如下&#xff1a; import org.apache.spark.sql.Row; import org.apache.spark.SparkConf; import org.apache.spark.api.java.JavaRDD; import org.apache.spark.api.java.JavaSparkContext; import org.apache.spark.api.java.function.VoidFunction; import org.apache.…

emqx使用webhook数据持久化到mysql

官方文档&#xff1a;WebHook | EMQ Docs 一、启用webhook和触发规则 编辑webhook规则配置文件&#xff1a;/etc/emqx/plugins/emqx_web_hook.conf 指定webhook的url位置&#xff1a;web.hook.url http://127.0.0.1:5000/mqtt/webhook 增加消息推送事件规则&#xff1a;指…

为什么你应该使用OpenGL而不是DirectX?

From: http://www.cnblogs.com/Baesky/archive/2011/04/08/2009128.html 这是一篇很意思的博文&#xff0c;原文链接为&#xff1a;http://blog.wolfire.com/2010/01/Why-you-should-use-OpenGL-and-not-DirectX 大家可以思考一下&#xff1a;why we choose a closed source AP…

[react] Mern和Yeoman脚手架有什么区别?

[react] Mern和Yeoman脚手架有什么区别&#xff1f; MERN是一种脚手架工具&#xff0c;可使用Mongo&#xff0c;Express&#xff0c;React和Nodejs轻松构建同构应用Yeoman也是脚手架工具&#xff0c;它是基于Node.js运行的&#xff0c;生成的技术栈与开发语言无法&#xff0c;…