POJ 2828 Buy Tickets 线段树
来源:互联网 发布:网络教研方法 编辑:程序博客网 时间:2024/06/05 21:02
node里储存剩余位置数
倒序更新
#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;#define lson l,m,rt<<1#define rson m+1,r,rt<<1|1#define mid (r+l)>>1const int maxn=200300;int node[maxn<<2],a[maxn],b[maxn],ans[maxn];void build(int l,int r,int rt){node[rt]=r-l+1;if(r==l)return;int m=mid;build(lson);build(rson);}void update(int n,int l,int r,int rt){node[rt]--;if(l==r){ans[l]=b[n];return;}int m=mid;if(node[rt<<1]>=a[n])update(n,lson);else {a[n]-=node[rt<<1];update(n,rson);}}void init(){memset(a,0,sizeof(a));memset(node,0,sizeof(node));memset(b,0,sizeof(b));memset(ans,0,sizeof(ans));}int main(){int i,n;while(scanf("%d",&n)!=EOF){init();for(i=1;i<=n;i++){scanf("%d%d",&a[i],&b[i]);a[i]++;}build(1,n,1);for(i=n;i>=1;i--){update(i,1,n,1);}printf("%d",ans[1]);for(i=2;i<=n;i++){printf(" %d",ans[i]);}printf("\n");}return 0;}
0 0
- POJ 2828 Buy Tickets(线段树)
- POJ 2828 Buy Tickets 线段树
- poj 2828 Buy Tickets(线段树)
- poj 2828 Buy Tickets 线段树!!!
- poj 2828 Buy Tickets 线段树
- POJ-2828 Buy Tickets 线段树
- poj 2828 Buy Tickets【线段树】
- POJ 2828 Buy Tickets(线段树)
- POJ 2828 Buy Tickets 线段树
- poj 2828 Buy Tickets(线段树)
- POJ 2828 Buy Tickets(线段树)
- POJ 2828 Buy Tickets 线段树
- 【线段树】poj 2828 Buy Tickets
- POJ:2828 Buy Tickets(线段树)
- POJ-2828 Buy Tickets 线段树
- POJ 2828 Buy Tickets 线段树解法
- POJ 2828 Buy Tickets 线段树
- POJ--2828--Buy Tickets【线段树】
- Base64编码解码C语言实现
- 安卓学习日志之开启新的activity获取他的返回值
- 【iOS】Web Color 的 Swift 实现
- 精确的人工成本核算
- 获取用户Ip地址通用方法常见安全隐患(HTTP_X_FORWARDED_FOR)
- POJ 2828 Buy Tickets 线段树
- 时间管理
- MFC 改变控件字体大小
- 腾讯连出两招重创阿里:阴谋与阳谋兼施
- HDU 3810 Magina 题解(搜索)
- 三角函数的实现
- 生命的深度与宽度(摘于傅佩荣的书)
- 对象真经!!!
- CentOS6.5查看某个端口运行状态