hdu2795 Billboard 线段树

题意:

给出一块h*w的广告牌,还有n张1*u的海报,海报尽量往上,左边的位置张贴,问每一张海报能贴的多高。

线段树单点修改。

注意:因为1 <= h,w <= 10^9; 1 <= n <= 200,000,但实际上,若h>n的话,最坏的情况下也只要用到前n行。

所以若h>n  则h=n

如果不加这一句,因为线段树的数组要开到h<<2这么大,又h<= 10^9,所以输入的h过大时会使开的数组过大。加了的话,就不会啦,n<<2是OK的。

 1 #include<cstdio>
 2 #include<algorithm>
 3 using namespace std;
 4 #define lson l,m,rt<<1
 5 #define rson m+1,r,rt<<1|1
 6 const int maxh=200010;
 7 int _max[maxh<<2];
 8 int ans;
 9 void pushup(int rt)
10 {
11     _max[rt]=max(_max[rt<<1],_max[rt<<1|1]);
12 }
13 void query(int u,int l,int r,int rt)
14 {
15     if(l==r){
16         _max[rt]-=u;
17         ans=l;
18         return ;
19     }
20     int m=(l+r)>>1;
21     if(_max[rt<<1]>=u)
22         query(u,lson);
23     else
24         query(u,rson);
25     pushup(rt);
26 }
27 int main()
28 {
29     int h,w,n;
30     while(scanf("%d%d%d",&h,&w,&n)!=EOF){
31         if(h>n)
32             h=n;
33         for(int i=1;i<=(h<<2);i++)
34             _max[i]=w;
35         int u;
36         for(int i=0;i<n;i++){
37             scanf("%d",&u);
38             if(_max[1]<u)
39                 printf("-1\n");
40             else{
41                 query(u,1,h,1);
42                 printf("%d\n",ans);
43             }
44         }
45     }
46     return 0;
47 }
View Code

 

转载于:https://www.cnblogs.com/-maybe/p/4355771.html

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

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

相关文章

实现iframe_面试官:来说说单点登录的三种实现方式

前言在 B/S 系统中&#xff0c;登录功能通常都是基于 Cookie 来实现的。当用户登录成功后&#xff0c;一般会将登录状态记录到 Session 中&#xff0c;或者是给用户签发一个 Token&#xff0c;无论哪一种方式&#xff0c;都需要在客户端保存一些信息&#xff08;Session ID 或 …

iphone投屏老是显示无法连接服务器,iPhone 无法投屏到电视如何解决?

使用投屏功能&#xff0c;可以在更大的屏幕上显示 iPhone 画面&#xff0c;将游戏画面、电影等从手机转移到电视屏幕&#xff0c;体验会更好。在 iOS 11 之前&#xff0c;使用 iPhone 自带的 AirPlay 功能&#xff0c;就可以轻松在智能电视上实现投屏。AirPlay 是苹果独有的无线…

js正则表达式的使用详解

本文转自&#xff1a;http://www.jb51.net/article/39623.htm 1定义正则表达式2关于验证的三个这则表达式方法3正则表达式式的转义字符1定义正则表达式在js中定义正则表达式很简单&#xff0c;有两种方式&#xff0c;一种是通过构造函数&#xff0c;一种是通过//&#xff0c;也…

帕累托最优生活例子_创业者:用博弈解决生活的难题

博弈策略的成功运用需依赖一定的环境、条件&#xff0c;在一定的博弈框架中进行。许多成语及典故&#xff0c;都是对博弈策略的令人叫绝的运用和归纳。成语故事“黔驴技穷”实际上就包含了一个不完全信息动态博弈。毛驴刚到贵州时&#xff0c;老虎摸不准这个大动物究竟有多大本…

电脑海尔电脑,海尔台式电脑好吗,海尔主机

最近有朋友询问海尔自带Win10系统使用不习惯&#xff0c;如何改成Win7系统的问题&#xff0c;这里小编向大家提供下方法&#xff0c;海尔台式机目前大多使用8代、9代intel处理器&#xff0c;改成Win7除了BIOS需要设置为兼容模式外&#xff0c;还需要你的Win7安装盘具备USB3.0/3…

《软件测试技术》课程第二周随笔

这次的博客内容为&#xff0c;举例解释等价类划分。 1. 问题描述 EditBox 在文本输入框内输入文字&#xff0c;然后按确认键。 允许接收的文字为&#xff1a;1至6个英文字符或数字。 2.等价类划分 有效等价类编号无效等价类编号包括的字符a-z,A-Z,0-91其他字符3字符串长度1-620…

图片句柄_PC微信逆向:自动保存加密的聊天图片

前言本文基于anhkgg大佬的文章《微信PC端技术研究(2)-拿下语音》原文链接&#xff1a;https://bbs.pediy.com/thread-249274.htmanhkgg大佬的这篇文章找到了保存语音消息的接口&#xff0c;这里直接给出相关特征码&#xff0c;方便定位(我使用的微信版本依旧是2.6.8.52)偏移为0…

复制密钥文件到另一台服务器,使用所有ssh密钥从第三台服务器在两台服务器之间远程复制...

我正在用python编写一个部署脚本&#xff0c;但是在我完成它之后&#xff0c;我发现可能不可能实现我的想法。在情况是这样的。在我有三个主人。在主机1:Ubuntu 12.04主机2:SUSE Linux Enterprise Server 11 SP1主机3:Windows Server 2008 R2&#xff0c;安装了Cygwin 1.7.8&am…

Unity手游之路十自动寻路Navmesh之跳跃,攀爬,斜坡

转载 Unity手游之路<十>自动寻路Navmesh之跳跃,攀爬,斜坡 分类&#xff1a; unity2013-12-27 00:50 6545人阅读 评论(5) 收藏 举报unity3dNavmesh手游自动寻路在之前的几篇Blog总&#xff0c;我们已经系统学习了自动寻路插件Navmesh的相关概念和细节。然而&#xff0c;如…

热点分析图_通过分析功率MOSFET管的工作特性,判断其损坏原因

0 前言目前&#xff0c;功率 MOSFET管广泛地应用于开关电源系统及其它的一些功率电子电路中&#xff0c;然而&#xff0c;在实际的应用中&#xff0c;通常&#xff0c;在一些极端的边界条件下&#xff0c;如系统的输出短路及过载测试&#xff0c;输入过电压测试以及动态的老化测…

隔年增长的题_资料分析——隔年增长

【导读】中公事业单位为帮助各位考生顺利通过事业单位招聘考试&#xff01;今天为大家带来事业单位考试题库及答案&#xff1a;资料分析——隔年增长。希望可以帮助各位考生顺利备考&#xff01;在公考中&#xff0c;资料分析的重要性显得尤为重要&#xff0c;面对激烈的竞争和…

Nim博弈游戏

给定n堆石子&#xff0c;每次每人能从一堆石子中取若干个石子&#xff08;不能不取&#xff09;&#xff0c;最后不能取石子者败 对于这个游戏&#xff0c;我们要判断的是&#xff0c;给定局势下&#xff0c;先手者胜还是败 设先手胜的局势为N-postion&#xff0c;先手败的局势…

显示多个页面退出登陆_软件测试小白如何第一次登陆时给LINUX的配置网络

接着上一期分享&#xff0c;今天分享的是虚拟机配置完成以后我们接下来怎么做首先我们进入终端登录以后先显示的是user用户点击user输入密码&#xff0c;回车或者点击sigh ln第一次进入会让你选择语音&#xff0c;你可以根据自己的喜好决定如果安装的可视化界面&#xff0c;你的…

SQL Server的聚集索引和非聚集索引

微软的SQL SERVER提供了两种索引&#xff1a;聚集索引(clustered index&#xff0c;也称聚类索引、簇集索引)和非聚集索引(nonclustered index&#xff0c;也称非聚类索引、非簇集索引)……   (一)深入浅出理解索引结构   实际上&#xff0c;您可以把索引理解为一种特殊的目…

python math库函数源码_11. math库函数

一、math库介绍内置数学类函数库&#xff0c;math库不支持复数类型&#xff0c;仅支持整数和浮点数运算。math库一共提供了&#xff1a;4个数字常数44个函数&#xff0c;分为4类&#xff1a;16个数值表示函数8个幂对数函数16个三角对数函数4个高等特殊函数库中函数不能直接使用…

原理 msc_计算机网络原理梳理丨无线与移动网络

目录无线网络移动网络IEEE802.11蜂窝网络移动IP网络其它典型无线网络介绍无线网络无线网络的基本结构无线主机无线链路基站网络基础设施自组织网络(Ad Hoc网络)无线链路与无线网络特性无线链路与有线链路主要区别&#xff1a;1.信号强度的衰弱2.干扰3.多径传播4.隐藏终端移动网…

如何卸载rpm

首先通过 rpm -q <关键字> 可以查询到rpm包的名字 或者rpm -qa|grep 关键字 然后 调用 rpm -e <包的名字> 删除特定rpm包 如果遇到依赖&#xff0c;无法删除&#xff0c;使用 rpm -e --nodeps <包的名字> 不检查依赖&#xff0c;直接删除rpm包 如果恰好有多…

python实现逐步回归分析_Python实现逐步回归(stepwise regression)

逐步回归的基本思想是将变量逐个引入模型&#xff0c;每引入一个解释变量后都要进行F检验&#xff0c;并对已经选入的解释变量逐个进行t检验&#xff0c;当原来引入的解释变量由于后面解释变量的引入变得不再显著时&#xff0c;则将其删除。以确保每次引入新的变量之前回归方程…

二维数组最大子数组和

一&#xff0e;实验题目 求一个二维数组中和最大的子数组。 二&#xff0e;实验思路 基于我们第一次合作时求的一位数组最大子数组&#xff0c;加上一层循环来遍历二维数组中的所有子矩阵的情况。 第一步&#xff1a;先利用上次的方法求每一行的情况&#xff0c;将每行结果存入…

木炭怎么获得_木炭机一体化流程中制做木炭是怎么完成的

关注我们获得更多精彩内容木炭机一体化流程中制做木炭是怎么完成的&#xff0c;木炭机生产线中炭化炉是核心设备。炭化炉炭化过程决定了木炭质量和效果。木炭机生产线中炭化过程需要经历三个不同温度阶段。三个不同温度阶段对薪棒的炭化作用不同。炭化好坏标志着木炭机制炭效果…