tjut 2795

原创 2016年08月29日 19:23:53
#include<iostream>  
#include<cstdio>  
#include<algorithm>  
using namespace std;  
  
#define L l,m,u<<1  
#define R m+1,r,u<<1|1  //u*2+1  
  
const int N=200000+10;  
int h,w,n;  
int a[N<<2];  
  
void build(int l,int r,int u)//u为根结点  
{  
    a[u]=w;  
    if(l==r)  
        return;  
    int m=(l+r)>>1;  
    build(L);  
    build(R);  
}  
  
int query(int x,int l,int r,int u)  
{  
    if(l==r)  
    {  
        a[u]-=x;  
        return l;  
    }  
    int m=(l+r)>>1;  
    int res=(a[u<<1]>=x)?query(x,L):query(x,R);  
    a[u]=max(a[u<<1],a[u<<1|1]);  
    return res;  
}  
  
int main()  
{  
    freopen("C:\\Users\\Administrator\\Desktop\\kd.txt","r",stdin);  
    while (~scanf("%d%d%d",&h,&w,&n))  
    {  
        if(h>n)  
            h=n;  
        build(1,h,1);  
        while(n--)  
        {  
            int x;  
            scanf("%d",&x);  
            if(a[1]<x)  
                printf("-1\n");  
            else  
                printf("%d\n",query(x,1,h,1));  
        }  
    }  
    return 0;  
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

tjut 5412

#include using namespace std; const int Maxn=100020; int nq; int ty[Maxn*3],ql[Maxn*3],qr[Maxn*3],qk...

HDU 2795 Billboard(线段树 区间最大)

Billboard Time Limit: 20000/8000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total...

HDU 2795 Billboard【线段树好题,单点更新】

题意:有个公告板,大小为h*w,要贴n张公告,每个公告的长度是k,高度固定为1,公告放的要尽可能靠上并尽可能靠左,依次给出一张公告,要求这个公告在满足要求的情况下放在了第几层。 思路:按照线段树的做法...

线段树 hdu2795

题意:一块h*w的广告牌,现在n个人往上面放广告,广告大小为1*wi,每个人都希望自己的广告尽量靠左上方。 输出每个广告在第几行,若不能放进去就输出-1。 /* 广告牌从上往下的行数逐渐增大。 将...

[BZOJ2795] [Poi2012] [字符串hash] A Horrible Poem

一个字符串的最小周期等于这个字符串的长度-border的长度 那么如果x是字符串的周期,[l,r-x]一定和[l+x,r]相等。 然后发现x一定是字符串的长度的约数,就枚举一下约数,字符串hash...
  • Coldef
  • Coldef
  • 2017年05月27日 19:47
  • 177

HDU2795(Billboard)线段树

/************************************************* 题目大意: 有一块h*w的矩形广告板,要往上面贴广告; 然后给n个1*wi的广告,要求把广告贴上去...
  • Jarily
  • Jarily
  • 2013年03月02日 21:24
  • 3578

HDU 2795 Billboard 【线段树】

题目链接 Segment Tree, single-point update题意有一块h*w的告示板,要向上面贴一些广告,每张广告都想被贴得尽量靠顶端,然后再尽量靠左。现有n块尺寸分别是1*wi的广...
  • DrCarl
  • DrCarl
  • 2016年10月16日 15:25
  • 221

HDU 2795 billboard 线段树

题目大意:         对于w*h(w  解题思路:        这题看上去和线段树没啥关系,我一开始也挺郁闷的,还以为又选错题了。        我们先对数据范围分析一下,可以发现虽然...
  • sssogs
  • sssogs
  • 2012年09月11日 14:38
  • 402

【HDU】 2795 Billboard

Billboard Time Limit: 20000/8000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Tot...
  • S_Black
  • S_Black
  • 2016年01月26日 15:20
  • 192

hdu~2795(线段树)

Billboard 第一眼看去这道题还真没看出来是线段树的题,可能是题目做的少吧。 题意:给你一个h*w大的墙,让你贴n张海报,每张海报规格是1*wi。尽可能的忘左上方贴,(上优先于左) 输出每...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:tjut 2795
举报原因:
原因补充:

(最多只允许输入30个字)