只要理解 用线段记录这个区间有多少个空位就行啦!!然后根据左右孩子的空位数 进行遍历线段树
#include<iostream>
#include<stdio.h>
using namespace std;
struct node{int l,r,s;
}a[1000000];
int b[200005],val[200005],ans[200005];
void build(int i,int left,int right)
{a[i].l=left;a[i].r=right;a[i].s=(right-left+1);if(a[i].l==a[i].r)return ;int mid=(left+right)>>1;build(i*2,left,mid);build(i*2+1,mid+1,right);
}
void updata(int i,int sum,int big)
{a[i].s--;if(a[i].l==a[i].r){ans[a[i].l]=big;return;}if(a[i*2].s>=sum)updata(i*2,sum,big);elseupdata(i*2+1,sum-a[i*2].s,big);
}
int main()
{int n;while(~scanf("%d",&n)){build(1,1,n);for(int i=1;i<=n;i++) scanf("%d%d",&b[i],&val[i]);for(int i=n;i>=1;i--) updata(1,b[i]+1,val[i]);for(int i=1;i<=n-1;i++) printf("%d ",ans[i]);printf("%d\n",ans[n]);}return 0;
}

poj 2828 Buy Tickets 线段树!!!相关推荐

  1. POJ 2828 Buy Tickets 线段树

    题目: http://poj.org/problem?id=2828 很巧妙的题,逆序插入线段树,这样元素不用移动.用二叉排序树也能过. 1 #include <stdio.h> 2 #i ...

  2. POJ 2828 Buy Tickets | 线段树的喵用

    题意: 给你n次插队操作,每次两个数,pos,w,意为在pos后插入一个权值为w的数; 最后输出1~n的权值 题解: 首先可以发现,最后一次插入的位置是准确的位置 所以这个就变成了若干个子问题, 所以 ...

  3. POJ - 2828 Buy Tickets(线段树+思维/Splay+模拟)

    题目链接:点击查看 题目大意:给出n个人,一个队列,一开始队列是空的,每个人加入的时候都会插入到指定位置pos的后面,即插队,问最后队列的排列情况是怎么样的 题目分析:一开始很难想到是线段树的题目,毕 ...

  4. poj 2828 Buy Tickets

    http://poj.org/problem?id=2828 题意:在一个队列里,有人依次向第pos个位置插入,求最后的序列: 思路:用线段树存储区间内剩余的没有被占的位置,注意插入的时候要从后向前插 ...

  5. #树状数组#poj 2828 Buy Tickets

    题目 输入插队的人和插队的位置,求最终所有人的位置. 分析 树状数组,从后往前(倒推),然后就是要让在前面的次序-1. 代码 #include <cstdio> #include < ...

  6. POJ 2828. Buy Tickets

    链接 http://poj.org/problem?id=2828 题意 有 NNN 个人排队,每一个人都有一个权值 valvalval ,每一个人都会按顺序插入到当前队伍的某一个位置 posposp ...

  7. 【POJ】2828 Buy Tickets(线段树+特殊的技巧/splay)

    http://poj.org/problem?id=2828 一开始敲了个splay,直接模拟. tle了.. 常数太大.. 好吧,说是用线段树.. 而且思想很拽.. (貌似很久以前写过貌似的,,) ...

  8. POJ 3667 Hotel(线段树)

    POJ 3667 Hotel 题目链接 题意:有n个房间,如今有两个操作 1.找到连续长度a的空房间.入住,要尽量靠左边,假设有输出最左边的房间标号,假设没有输出0 2.清空[a, a + b - 1 ...

  9. poj 2892---Tunnel Warfare(线段树单点更新、区间合并)

    题目链接 Description During the War of Resistance Against Japan, tunnel warfare was carried out extensiv ...

  10. poj/OpenJ_Bailian - 2528 离散化+线段树

    传送门:http://bailian.openjudge.cn/practice/2528?lang=en_US //http://poj.org/problem?id=2528 题意: 给你n长海报 ...

最新文章

  1. 一起谈.NET技术,.Net Discovery系列之-深入理解平台机制与性能影响 (中)
  2. ADO.NET编程小错误
  3. finally 关键字
  4. [BZOJ1355][Baltic2009]Radio Transmission
  5. 敏捷个人第五次练习:个人使命宣言
  6. 全国计算机等级考试题库二级C操作题100套(第13套)
  7. VMware安装CentOS之二——最小化安装CentOS
  8. SpringBoot微服务项目构建war包 部署排除指定jar
  9. BinderHub 使用简介
  10. Xen Documentation - Hypercall Interfaces
  11. UGUI的Drag实现鼠标拖拽
  12. spark读取hdfs数据本地性异常
  13. WEB安全 asp+access注入
  14. 制作一个简单HTML个人网页网页(HTML+CSS)
  15. 力天创见客流统计标书制作
  16. 音频开发_Microphone Array Beamforming_Delay Sum Beamforming
  17. python爬虫读后感-学习爬虫的感想和心得
  18. iOS appIcon生成和设置
  19. [AISTATS21]Towards Flexible Device Participation in Federated Learning阅读笔记
  20. shiro的anon失效问题

热门文章

  1. vs2013使用remote debug
  2. ZooKeeper(3.4.5) - 原生 API 的简单示例
  3. [转载]JSONP跨域的原理解析
  4. 设计模式一(抽象工厂模式)
  5. innerHTML和innerText的使用和区别
  6. Web Worker——js的多线程,实现统计博客园总阅读量
  7. tomcat在linux服务器上部署应用
  8. Delphi XE开发 Android 开机自动启动
  9. css实现面包屑导航
  10. c#基础知识——main