题目:http://acm.hdu.edu.cn/showproblem.php?pid=2795

 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 maxn = 222222;
 7 int MAX[maxn << 2];
 8 int h, w, n;
 9 void pushup(int rt)
10 {
11     MAX[rt] = max(MAX[rt << 1], MAX[rt << 1 | 1]);
12 }
13 void build(int l, int r, int rt)
14 {
15     MAX[rt] = w;
16     if (l == r) return;
17     int m = (l + r) >> 1;
18     build(lson);
19     build(rson);
20 }
21 int query(int p, int l, int r, int rt)//这里由于query和update都是对单点操作,所以将两个函数合并为一个了
22 {
23     if (l == r){
24         MAX[rt] -= p;
25         return l;
26     }
27     int m = (l + r) >> 1;
28     int ret = (MAX[rt<<1] >= p ? query(p, lson) : query(p, rson));//这里判断左子节点是否还有相应的空间,若没有则递归右子节点。
29     pushup(rt);
30     return ret;
31 }
32 int main()
33 {
34     while (~scanf("%d%d%d", &h, &w, &n)){
35         if (h > n) h = n;//通知小于h时可以直接缩小h的范围
36         build(1, h, 1);
37         while(n--){
38             int p;
39             scanf("%d", &p);
40             if (MAX[1] < p) puts("-1");
41             else printf("%d\n",query(p, 1, h, 1));
42         }
43     }
44     return 0;
45 }

转载于:https://www.cnblogs.com/-Unc/p/4115969.html

HDU2795 Billboard相关推荐

  1. hdu2795 Billboard 线段树

    题意: 给出一块h*w的广告牌,还有n张1*u的海报,海报尽量往上,左边的位置张贴,问每一张海报能贴的多高. 线段树单点修改. 注意:因为1 <= h,w <= 10^9; 1 <= ...

  2. HDU2795 Billboard 线段树

    这是一道简单的线段树,只需要考虑好我们建树的方式即可! 我们以高h来建树,点的权值为W,通过来维护区间的最大值,我们很快就能查找到编号最小的点切大于等于wi..明白之后就是一道简单的线段树单点更新,维 ...

  3. 数据结构---线段树

    线段树 转载请注明出处,谢谢!http://blog.csdn.net/metalseed/article/details/8039326  持续更新中···   一:线段树基本概念 1:概述 线段树 ...

  4. 【转】线段树题目 汇总 讲解(by not only success)

    转载自:http://www.notonlysuccess.com/ 非常喜欢他的代码风格以及简洁的思路,感谢notonlysuccess! PS:他的个人网站好像是上不去了-.- 线段树 很早前写的 ...

  5. 线段树空间容纳且最上边的数(单点更新)

    题目:HDU2795 Billboard #include <stdio.h> #define maxn 222222 #define lson l,m,rt<<1 #defi ...

  6. ACM大牛总结的线段树专辑

    https://blog.csdn.net/qq_25605637/article/details/46967529 [完全版]线段树 很早前写的那篇线段树专辑至今一直是本博客阅读点击量最大的一片文章 ...

  7. 【转载】完全版线段树 by notonlysuccess大牛

    原文出处:http://www.notonlysuccess.com/ 今晚上比赛就考到了 排兵布阵啊,难受. [完全版]线段树 很早前写的那篇线段树专辑至今一直是本博客阅读点击量最大的一片文章,当时 ...

  8. 转载自杭电大牛的博客 线段树 绝对经典

    转载自:http://www.notonlysuccess.com/ 不可不看的经典 学线段树必看,大牛很多,给后人留下记录的却没有几个,谢谢这位大牛~! 因为我这最近他博客打不开了...特意从别人那 ...

  9. 线段树模板(来自胡浩大牛)

    http://www.notonlysuccess.com/(今天看二叉树,想回来看看,发现大牛博客进不去...) 如果要学,就要好好学.我copy的,如有错,请看http://www.cnblogs ...

最新文章

  1. javaScript通用数据类型校验
  2. 使用curl操作InfluxDB
  3. 如果两个对象具有相同的哈希码,但是不相等的,它们可以在HashMap中同时存在吗?...
  4. 数据松弛Data Relaxation
  5. 树的遍历-Preorde Traversal,Inorder Traversal,Postoder Traversal
  6. 学习Java编程-Java Timezone类常见问题
  7. C\C++中声明与定义的区别
  8. 黑色全屏个人主页bootstrap4模板
  9. java底部菜单_安卓开发笔记——TabHost组件(一)(实现底部菜单导航)
  10. 不同操作系统下重置root密码的方法
  11. java 短地址_URL短地址压缩算法 微博短地址原理解析(再转与Java实现) | 学步园
  12. JavaScript数字精度丢失问题总结
  13. 38个免费匿名临时邮箱服务
  14. Vue:type check failed for prop “pageSize“. Expected Number with value xx 问题
  15. android 调用短信,Android实现接收短信和发送短信功能
  16. android6刷机教程,安卓手机刷机步骤
  17. Cron范式每日凌晨一点执行
  18. Requirement already satisfied
  19. python中文文本信息提取_PyMuPDF提取文本信息
  20. 阿里云数据库李飞飞:云计算推动数据库向云原生快速演进

热门文章

  1. apc php7,深入解析php之apc
  2. 干货 | C语言系列3——常量,运算符,常用数学函数......
  3. linux里面启用无线网卡,linux启用无线网卡上网
  4. python自动化运维快速入门pdf下载_Python自动化运维快速入门
  5. 网管光纤收发器产品硬件功能及网管收发器优点介绍
  6. 【渝粤教育】国家开放大学2018年春季 0184-21T行政职业能力 参考试题
  7. pythoni屏幕连点_【Flutter组件】仿抖音双击点赞弹出爱心效果(可连点)
  8. mysql从dos界面_从DOS界面进入MYSQL数据库
  9. 【3】C++语法与数据结构之MFC_CList学生管理系统_链表外排序_函数指针
  10. html图片显示原始大小,我如何使PHP / HTML图像在单击时显示原始大小?