Buy Tickets(poj 2828)
题意:排队买票,但是 中途 出现插队情况,比如 0 123,代表值为123的人 插入到 0 的位置,如果后面 出现 0 456,那么新的 0的位置就是 456,123就变成是 1的位置了
分析:这道题应该从后往前插入,当要插的位置小于左边的空位数时,就往左边插,否则往右边插,并且此刻插的位置要减去左边的空位数
#include<cstdio>
#include<iostream>
#define lson l,m,now*2
#define rson m+1,r,now*2+1
#define M 200010
using namespace std;
int sum[M*],ans[M];
struct node
{
int pos,zh;
};node per[M];
void push_up(int now)
{
sum[now]=sum[now*]+sum[now*+];
}
void build(int l,int r,int now)
{
if(l==r)
{
sum[now]=;
return;
}
int m=(l+r)/;
build(lson);
build(rson);
push_up(now);
}
void change(int p,int v,int l,int r,int now)
{
if(l==r)
{
ans[l]=v;
sum[now]=;
return;
}
int m=(l+r)/;
if(p<sum[now*]) change(p,v,lson);
else change(p-sum[now*],v,rson);
push_up(now);
}
int main()
{
int n;
while(~scanf("%d",&n))
{
build(,n-,);
for(int i=;i<n;i++)
scanf("%d%d",&per[i].pos,&per[i].zh);
for(int i=n-;i>=;i--)
change(per[i].pos,per[i].zh,,n-,);
for(int i=;i<n;i++)
printf("%d ",ans[i]);
printf("\n");
}
return ;
}
Buy Tickets(poj 2828)的更多相关文章
- Buy Tickets POJ - 2828 思维+线段树
		Buy Tickets POJ - 2828 思维+线段树 题意 是说有n个人买票,但是呢这n个人都会去插队,问最后的队列是什么情况.插队的输入是两个数,第一个是前面有多少人,第二个是这个人的编号,最 ... 
- H - Buy Tickets POJ - 2828  逆序遍历  树状数组+二分
		H - Buy Tickets POJ - 2828 这个题目还是比较简单的,其实有思路,不过中途又断了,最后写了一发别的想法的T了. 然后脑子就有点糊涂,不应该啊,这个题目应该会写才对,这个和之前的 ... 
- poj 2828 Buy Tickets (线段树(排队插入后输出序列))
		http://poj.org/problem?id=2828 Buy Tickets Time Limit: 4000MS Memory Limit: 65536K Total Submissio ... 
- POJ 2828 Buy Tickets(排队问题,线段树应用)
		POJ 2828 Buy Tickets(排队问题,线段树应用) ACM 题目地址:POJ 2828 Buy Tickets 题意: 排队买票时候插队. 给出一些数对,分别代表某个人的想要插入的位 ... 
- poj 2828 Buy Tickets(树状数组 | 线段树)
		题目链接:poj 2828 Buy Tickets 题目大意:给定N,表示有个人,给定每一个人站入的位置,以及这个人的权值,如今按队列的顺序输出每一个人的权值. 解题思路:第K大元素,非常巧妙,将人入 ... 
- poj 2828 Buy Tickets 【线段树点更新】
		题目:id=2828" target="_blank">poj 2828 Buy Tickets 题意:有n个人排队,每一个人有一个价值和要插的位置,然后当要插的位 ... 
- 线段树(单点更新) POJ 2828 Buy tickets
		题目传送门 /* 结点存储下面有几个空位 每次从根结点往下找找到该插入的位置, 同时更新每个节点的值 */ #include <cstdio> #define lson l, m, rt ... 
- poj 2828 Buy Tickets  树状数组
		Buy Tickets Description Railway tickets were difficult to buy around the Lunar New Year in China, so ... 
- poj 2828 Buy Tickets (线段树 单节点 查询位置更新)
		Buy Tickets Time Limit: 4000MS Memory Limit: 65536K Total Submissions: 15533 Accepted: 7759 Desc ... 
随机推荐
- Nginx Installation、Configuration、Rreverse Proxy、Load Balancing Learning
			目录 . Nginx简介 . Nginx安装部署 . Nginx安全配置 . Nginx反向代理实践 . Nginx负载均衡实践 1. Nginx简介 0x1: Nginx的基本特性 Nginx(&q ... 
- Web 测试经验总结
			Web功能测试常用方法 1.页面链接检查每一个链接是否都有对应的页面,并且页面之间切换正确: 2.相关性检查删除/增加一项会不会对其他项产生影响,如果产生影响,这些影响是否都正确. 3.检查按钮的功能 ... 
- POJ 2752 Seek the Name, Seek the Fame
			传送门 Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 14761 Accepted: 7407 Description ... 
- IOS 面试
			1. #import , #include的区别 @import防止类的重复引用,#import 确定一个文件只能被导入一次,这使在递归包含中不会出现问题. @class一般用于头文件中需要声明该类的 ... 
- .net mvc4 利用 kindeditor 上传本地图片
			http://blog.csdn.net/ycwol/article/details/41824371?utm_source=tuicool&utm_medium=referral 最近在用k ... 
- API与软件架构
			http://blog.csdn.net/horkychen/article/details/46612899 从架构设计的角度来看(所谓的组成论),软件系统就是模块和接口. 模块(层次/组件)决定分 ... 
- tp框架做留言板
			首先是登录的LoginController.class.php 代码内容是 <?php namespace Admin\Controller; use Think\Controller; cla ... 
- javaweb学习总结(三十)——EL函数库
			一.EL函数库介绍 由于在JSP页面中显示数据时,经常需要对显示的字符串进行处理,SUN公司针对于一些常见处理定义了一套EL函数库供开发者使用. 这些EL函数在JSTL开发包中进行描述,因此在JSP页 ... 
- hdu 1176 免费馅饼(动态规划)
			AC code: #include<stdio.h> #include<string.h> #define max(a,b) (a>b?a:b) #define maxo ... 
- hdu 1013 Digital Roots
			#include <stdio.h> int main(void) { int m,i;char n[10000]; while(scanf("%s",&n)= ... 
