hdu2795Billboard(线段树)
来源:互联网 发布:淘宝怎么登录不上去 编辑:程序博客网 时间:2024/05/11 19:07
题目链接:
http://acm.hdu.edu.cn/showproblem.php?pid=2795
题目大意就是给你一个h*w的广告牌,一个广告牌有1*wi 的长度广告牌要求在最左端最上端,问你每输入一个广告牌,它的位置在哪
这道题就是一个线段树的最大值了,每次都减一下就好了。
AC代码:
#include<iostream>#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;#define lson l,m,rt<<1#define rson m+1,r,rt<<1|1const int maxn = 222222; int MAN[maxn<<2];int h,w,n;void pushup(int rt){MAN[rt]=max(MAN[rt<<1],MAN[rt<<1|1]);}void build(int l,int r,int rt){MAN[rt]=w;if(l==r)return;int m=(l+r)>>1;build(lson);build(rson);}int query(int x,int l,int r,int rt){int ret;if(l==r){MAN[rt]=MAN[rt]-x;return l;}int m=(l+r)>>1;ret=(MAN[rt<<1]>=x) ? query(x,lson):query(x,rson);pushup(rt);return ret;}int main(){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 (MAN[1] < x) puts("-1"); else printf("%d\n",query(x , 1 , h , 1)); }}}
0 0
- hdu2795Billboard(线段树)
- 线段树-HDU2795Billboard
- hdu2795Billboard 线段树
- hdu2795Billboard【线段树】
- hdu2795Billboard(线段树)
- HDU2795Billboard (线段树)
- HDU2795Billboard--线段树单点更新
- hdu2795Billboard (线段树,看作点更新)
- hdu2795Billboard(线段树,找第一个大于w的点)
- HDU2795Billboard
- hdu2795Billboard
- hdu2795Billboard
- hdu2795Billboard
- hdu2795Billboard
- HDU2795Billboard
- 线段树?线段树!
- 线段树?线段树!
- 线段_线段树
- cmd的forfiles命令详解
- linux c++ 利用timerfd和epoll封装计时器(Timer)类
- 大型网站架构演化历程
- android stdio安装记录
- 深入分析Parquet列式存储格式
- hdu2795Billboard(线段树)
- #PHP行注释
- 接移动基地和游戏(咪咕游戏)SDK时.so文件被删的解决办法
- 使用idea开发maven项目遇到问题
- HDOJ 2108 Shape of HDU (判断凹凸多边形)
- GCC编译警告选项的学习
- oracle数据库SQL语句的一种优化手段 gather_plan_statistics hint
- linux 木马清理过程
- Android系统定制开机动画