hdu 2795 Billboard 线段树 单点更新
来源:互联网 发布:浙江大学网络教育 编辑:程序博客网 时间:2024/04/30 02:18
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int N =200005;int maxn[N<<2];int h,w;void build(int l,int r,int rt){if(l==r){maxn[rt]=w;return;}int mid=(l+r)>>1;build(l,mid,rt<<1);build(mid+1,r,rt<<1|1);maxn[rt]=w;}int query(int l,int r,int x,int rt){if(l==r) {maxn[rt]-=x;return l;}int mid=(l+r)>>1;int pos;if(maxn[rt<<1]>=x) pos=query(l,mid,x,rt<<1);else pos=query(mid+1,r,x,rt<<1|1);maxn[rt]=max(maxn[rt<<1],maxn[rt<<1|1]);return pos;}int main(){int n;while(scanf("%d%d%d",&h,&w,&n)!=EOF){h=min(h,n);build(1,h,1);int x;while(n--){scanf("%d",&x);if(maxn[1]<x) printf("-1\n");else printf("%d\n",query(1,h,x,1));}}return 0;}这题自己想了好久才写出来。。。果然模型的建立是核心。
0 0
- HDU 2795 Billboard [线段树-单点更新]
- hdu 2795 Billboard 线段树 单点更新
- HDU 2795 Billboard / 线段树单点更新
- HDU-2795 Billboard 线段树单点更新
- hdu 2795 Billboard 线段树 单点更新
- hdu 2795 Billboard (线段树,单点更新)
- HDU-2795-Billboard-线段树单点更新
- HDU 2795 Billboard // 线段树 单点更新
- HDU 2795 Billboard 线段树单点更新
- HDU 2795 Billboard 线段树单点更新
- HDU 2795 Billboard【线段树好题,单点更新】
- 线段树练习[单点更新] HDU 2795 Billboard
- HDU 2795 Billboard (线段树单点更新)
- HDU 2795 Billboard (线段树单点更新)
- HDU 2795 Billboard (线段树 单点更新 区间求最大值)
- 线段树 单点更新查询 区间最大值 hdu 2795 Billboard
- hdu 2795 Billboard(线段树-单点更新)
- HDU 2795 Billboard (线段树单点更新)
- android消息机制——Handler类
- 经典问题
- Java网络与线程之初总结
- boost asio 简单示例
- Ubuntu下安装easy_install
- hdu 2795 Billboard 线段树 单点更新
- c# Invoke和BeginInvoke 区别
- 互联网创业者自杀,为何?
- iOS上访问HTTPS站点几种方法优缺点
- lr_convert_string_encoding 函数使用详解
- jackson json数据过滤,用于hibernate的懒加载对象级联关系的json解析
- Android控件定制--具有滑动页面的容器+具有滑动菜单的容器【附效果图附源码】
- 如何写系统需求分析书
- WebService笔记(二):简介