Problem : 2795 ( Billboard )     Judge Status : Accepted
RunId : 5864258    Language : C    Author : qq1203456195

/*
题意:高h宽w的公告栏,往上边贴1*L的公告,在能放的区域内按照最上最左的原则
张贴。
输出:每张公告贴分别在了第几行。
=========================================================================
每个结点存储的是当前l-r行上能贴的公告的L的最大值Max
if(Max>=L)说明可以放
{if(MaxL>=L)进入左子树;else进入右子树;
}
else
{不能放,返回;
}
*/
#include <stdio.h>
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
#define MAX 222222
int Max[MAX<<2],n,h,w;//公告数量,高度(使用的高度不会超过n),宽度
void build(int l,int r,int rt)
{int m;Max[rt]=w;if(l==r){Max[rt]=w;return;}m=((l+r)>>1);build(lson);build(rson);
}
int max(int a,int b)
{    return a>=b?a:b;}
int post(int p,int l,int r,int rt)
{int m,ret=0;if (l==r){Max[rt]-=p;return l;}m=((l+r)>>1);if(Max[rt<<1]>=p)ret=post(p,lson);elseret=post(p,rson);Max[rt]=max(Max[rt<<1],Max[rt<<1|1]);return ret;
}
int main()
{int i,p;while (~scanf("%d%d%d",&h,&w,&n)){if(h>n)h=n;build(1,h,1);for (i=0;i<n;i++){scanf("%d",&p);if(Max[1]<p)printf("-1\n");elseprintf("%d\n",post(p,1,h,1));}}        return 0;
}

转载于:https://www.cnblogs.com/CheeseZH/archive/2012/04/28/2475767.html

HDOJ2795 Billboard【线段树】相关推荐

  1. HDU 2795 Billboard (线段树+贪心)

    HDU 2795 Billboard (线段树+贪心) 手动博客搬家:本文发表于20170822 21:30:17, 原地址https://blog.csdn.net/suncongbo/articl ...

  2. HDU - 2795 Billboard(线段树)

    题目链接:点击查看 题目大意:给定一个高度为h,宽度为w的广告牌,接下来以此给出n个高度为1,宽度为w的广告,我们需要将广告优先贴在最上边.最左边,问给出的每一个广告应该贴在哪一行,若没有位置贴了则输 ...

  3. hdu2795 Billboard 线段树

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

  4. HDU2795 Billboard 线段树

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

  5. HDU_2795 Billboard(线段树)

    /*题意:输出每次贴上的海报所在的行号,行号为1...h; 开始拿到这题没思路,后来问了问本校的大牛,终于找到思路.这题是按high建树,结构体中定义一个len变量,存放当前该结点的空闲长度.某结点的 ...

  6. 线段树——思维(Codeforces 339D Xenia and Bit Operations/Billboard HDU - 2795)

    Codeforces 339D Xenia and Bit Operations vj地址 题意:给出2的n次方个数,每次将现在这个序列中相邻的两个数运算后合并为一个数,得到一个新的序列,这个新序列的 ...

  7. Billboard(海报粘贴简单的线段树)

    题目来源:[NWPU][2014][TRN][13]线段树第一讲  G 题 http://vjudge.net/contest/view.action?cid=50850#problem/G 作者:n ...

  8. 【HDU2795】Billboard(线段树)

    大意:给一个h*w的格子,然后给出多个1*w的板子往格子里面填,如果有空间尽量往上一行填满,输出行数,无法填补,则输出-1: 可以使用线段树转化问题,将每一排的格子数目放到每一个叶子节点上,然后每有一 ...

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

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

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

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

最新文章

  1. 云服务器怎么添加虚拟内存,云服务器怎么添加虚拟内存
  2. Android应用安全开发之浅谈加密算法的坑
  3. python四种数值交换方法
  4. 详解 nginx 配置文件及构建 web 虚拟主机
  5. ubuntu14.04安装linux公社,Ubuntu 14.04下安装IT++
  6. notepad++ 查找引用(Find Reference)(适用于c c++及各类脚本比如lua、python等)
  7. mosquitto鉴权插件的开发与说明(一)
  8. 如何学好python基础_零基础如何学好Python开发?
  9. 惊恐的市场洗牌网游市场诞生危机论
  10. 数据意识崛起,从企业应用看BI软件的未来发展 1
  11. MySql中,复制旧表结构到新表
  12. Python关键点常识
  13. 海外服务器配置多少带宽比较合适?
  14. 基于opencv答题卡识别
  15. MySQL入门笔记整理
  16. Disable access to external entities in XML parsing
  17. matlab没有关联m文件,matlab 不关联m文件的解决方法
  18. 腾讯派息式减持京东,“伯克希尔”的投资策略变的逻辑是?
  19. 糖友低碳水、高蛋白饮食可行吗
  20. sizeof 的小知识

热门文章

  1. 分布式服务框架 Zookeeper — 管理分布式环境中的数据
  2. MAC下PHP7.1.23安装intl3.0.0
  3. 对 2018 年 AI 发展预言全中,他们又立了 2019 的 Flag
  4. php在线打开pdf文件
  5. WPF 将Bitmapsource转换到Emgu.cv.image
  6. HTML, CSS. JS的各种奇淫技巧
  7. Linux下的网络远程安装
  8. 《孙子兵法》十三篇注译(15--结束语)
  9. VMWare 6.0桥接模式虚拟机网络配置
  10. 自动化运维之PSSH