poj2828 Buy Tickets
来源:互联网 发布:联通董事长常小兵知乎 编辑:程序博客网 时间:2024/06/01 19:57
PS: 起初,很多人说这道题是一道线段树题,可是为什么呢?我一直没有头绪,后来看了解题报告的第一行,我明白了。原来这道题就是基本的线段树。
那个解题报告的第一行写着:倒叙插入,位置就是前边的空格数。如果对线段树了解的话,那你也就明白了。
废话不说了,上代码……
View Code
1 #include<iostream> 2 #include<string> 3 #include<queue> 4 #include<map> 5 #include<stack> 6 #include<cmath> 7 #include<functional> 8 #include<algorithm> 9 using namespace std;10 #define lson l , m , rt << 111 #define rson m + 1 , r , rt << 1 | 112 const int maxn = 200010;13 int sum[maxn<<2];14 int result[maxn];15 int n;16 pair<int,int> order[maxn];17 18 int operate(int a,int b){19 return a+b;20 }21 22 23 void PushUp(int rt){24 sum[rt]=operate(sum[rt<<1],sum[rt<<1|1]);25 }26 27 void bulid(int l=1,int r=n,int rt=1){28 if(l==r){29 sum[rt]=1;return ;30 }31 int m=(l+r)>>1;32 bulid(lson);33 bulid(rson);34 PushUp(rt);35 }36 37 void update(int p,int add,int l=1,int r=n,int rt=1){38 if(l==r){39 sum[rt]=0;40 result[l]=add;41 return ;42 }43 int m=(l+r)>>1;44 if(p<sum[rt<<1])update(p,add,lson);45 else update(p-sum[rt<<1],add,rson);46 PushUp(rt);47 }48 49 int main(){50 51 int tmp[maxn];52 while(~scanf("%d",&n)){53 bulid();54 55 for(int i=0;i<n;i++){56 scanf("%d%d",&order[i].first,&order[i].second);57 }58 for(int i=n-1;i>=0;i--){59 update(order[i].first,order[i].second);60 }61 for(int i=1;i<=n;i++){62 printf("%d%c",result[i],(i^n)?' ':'\n');63 }64 65 }66 67 return 0;68 }
0 0
- POJ2828 Buy Tickets
- POJ2828 Buy Tickets
- POJ2828--Buy Tickets
- POJ2828:Buy Tickets
- poj2828 Buy Tickets
- poj2828 Buy Tickets
- POJ2828 Buy Tickets
- POJ2828 Buy Tickets
- poj2828 Buy Tickets
- poj2828- Buy Tickets
- poj2828 Buy Tickets
- poj2828 Buy Tickets
- POJ2828------Buy Tickets
- poj2828 Buy Tickets
- poj2828 Buy Tickets
- poj2828 Buy Tickets
- poj2828 Buy Tickets
- POJ2828 Buy Tickets
- android学习笔记09(activity的生命周期)
- android学习笔记10(activity的死亡,菜单,及对话框)
- android学习笔记11(Adapter初级学习)
- hdu2795 Billboard
- 2014.02.20 等待总结
- poj2828 Buy Tickets
- POJ2668解题报告
- android学习笔记之多线程与结合对话框
- linux远程桌面学习
- poj2886 Who Gets the Most Candies?
- 反素数
- android学习笔记之多线程(二)
- android学习笔记之handler(1)
- android学习笔记之handler(2)