POJ 2828 Buy Tickets
来源:互联网 发布:c 生命数组 编辑:程序博客网 时间:2024/05/21 01:54
题意:N个人插队,每一个人会给你他要插到第几个位置,和他的价值;输出最后的顺序;
思路:逆序,按照空位确定位置!!!
思路:逆序,按照空位确定位置!!!
附AC代码
#include<stdio.h>#include<iostream>using namespace std;int tree[200000*4];struct node{int tot,v;}num[200000];int ans[200000];void bulid(int l,int r,int index){if(l==r){tree[index]=1;return ;}int mid=(l+r)/2;bulid(l,mid,index*2);bulid(mid+1,r,index*2+1);tree[index]=tree[index*2]+tree[index*2+1];}void insert(int k,int l,int r,int index,int x){int mid=(l+r)/2;if(l==r){tree[index]=0;ans[l]=x;return ;}if(k<=tree[index*2]){insert(k,l,mid,index*2,x);}else{insert(k-tree[index*2],mid+1,r,index*2+1,x);}tree[index]=tree[index*2]+tree[index*2+1];return ;}int main(){int i,j,n,m;while(scanf("%d",&n)!=EOF){bulid(1,n,1);for(i=1;i<=n;i++){scanf("%d%d",&num[i].tot,&num[i].v);}for(i=n;i>=1;i--){insert(num[i].tot+1,1,n,1,num[i].v);}for(i=1;i<n;i++)printf("%d ",ans[i]);printf("%d\n",ans[i]);}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
- CRC16 - CRC64 的碰撞测试
- 世界是数字的重点读书笔记(计算机科普知识)
- PackageManager后台静默安装
- 【笔记】放球模型
- 《c++ primer》第二章学习笔记
- POJ 2828 Buy Tickets
- 小白马卫士项目总结之手机防盗
- 析构函数、多态
- 递归数据是怎样制作出分组报表
- 自己写的 基于多线程和TCPserver类、TCPsocket的类
- 帮你理解特征向量的几何意义?
- HDOJ 5135(Little Zu Chongzhi's Triangles)
- WPF Expander-Template(default)
- 如何写一个正经的Android音乐播放器 一