倒着插,先不理解意思,后来看一篇题解说模拟一下

手动模拟一下就好理解了-----

不过话说一直写挫---一直改啊-----

好心塞------

 #include <cstdio>
#include <ctime>
#include <cstring>
#include <cstdlib>
#include <cmath>
#include <vector>
#include <map>
#include <set>
#include <stack>
#include <queue>
#include <string>
#include <iostream>
#include <algorithm>
using namespace std; #define getmid(l,r) ((l) + ((r) - (l)) / 2) typedef long long LL;
const double eps = 1e-;
const int INF = ( << ) - ;
const int maxn = ; struct node{
int l,r,s;
}t[*maxn]; struct Edge{
int pos,val;
}a[maxn]; int n;
int ans[maxn]; void Push_up(int p){
t[p].s = t[p<<].s + t[p<<|].s;
} void Build_tree(int p,int l,int r){
t[p].l = l;
t[p].r = r;
if(l == r){
t[p].s = ;
return;
}
int mid = getmid(l,r);
Build_tree(p<<,l,mid);
Build_tree(p<<|,mid+,r);
Push_up(p);
} void update(int idx,int p){
if(t[p].l == t[p].r){
t[p].s--;
return;
}
int mid = getmid(t[p].l,t[p].r);
if(idx <= mid) update(idx,p<<);
else update(idx,p<<|);
Push_up(p);
} int query(int idx,int p){
if(t[p].l == t[p].r) return t[p].l;
if(t[p<<].s >= idx) return query(idx,p<<);
else return query(idx-t[p<<].s,p<<|);
} void solve(){
Build_tree(,,n);
// for(int i = 1;i <= 2*n;i++)
// printf("t[%d].l = %d t[%d].r = %d t[%d].s = %d\n",i,t[i].l,i,t[i].r,i,t[i].s);
for(int i = n;i >= ;i--){
int pos = a[i].pos;
int id = query(pos,);
ans[id] = a[i].val;
update(id,);
}
printf("%d",ans[]);
for(int i = ;i <= n;i++) printf(" %d",ans[i]);
printf("\n");
} int main(){
while(scanf("%d",&n) != EOF){
for(int i = ;i <= n;i++){
scanf("%d %d",&a[i].pos,&a[i].val);
a[i].pos++;
}
solve();
}
return ;
}

加油啊~~~~

最新文章

  1. ABP源码分析二十四:Notification
  2. sharepoint 计算列 年龄
  3. mysql获取一个表中的下一个自增(id)值的方法
  4. 使用EntityFramework6连接MySql数据库(db first方式)
  5. eclipse android sdk content loader一直显示0%的问题解决
  6. HibernateUtil
  7. 谈谈yii2-gii如何自定义模板
  8. 完全背包问题 POJ1384
  9. js判断手机浏览器并跳转到手机网站
  10. The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved
  11. POJ 3321- Apple Tree(标号+BIT)
  12. Luogu_1565_牛宫_(最大子矩阵)
  13. logstahs 匹配isslog
  14. C++赋值运算符与赋值表达式
  15. UVA1232 - SKYLINE(段树部分的变化)
  16. 【转】细说Cookie
  17. 一步一步学习Vue(十一)
  18. Android的SharedPreferences(首选项)保存键值对
  19. JS 自己实现Map
  20. webstorm背景颜色更改

热门文章

  1. iframe里面开启全屏allowfullscreen=&quot;true&quot;
  2. sublim Text3 配置python3环境
  3. python3发送邮件
  4. Vue学习之路第十五篇:v-if和v-show指令
  5. Project Euler 8 Largest product in a series
  6. jquery 去重
  7. SSH整合总结(OA项目)
  8. Google Spanner (中文版)
  9. 【推荐】你必须知道的EF知识和经验
  10. Linux中在主机上实现对备机上文件夹及文件的操作的C代码实现