E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
POJ2828
第7章 代码
后缀数组poj1743poj3415poj2758线段树
poj2828
每个人依次插队,pos表示这个人会差到第pos个人的右边,树状数组维护,开始的时候全置1,表示每个位置都有一个人,就是最终的状态,然后按照时间顺序倒序处理
as305323460
·
2020-09-15 22:56
首届华中区程序设计邀请赛暨第十届武汉大学程序设计大赛网络预赛C题(HDOJ-4217)
这题比赛的时候是狐狸大大敲的..先用了list..结果超时了..果断树状数组A之...其实这题当年做过很类似的:
POJ2828
插队排队问题..初始所有点的值都是1..那么初始时每个点k的1~k之和a[k
kk303
·
2020-09-14 00:45
树状数组
POJ2828
Buy Tickets【线段树 点修改+区间查询】
BuyTicketshttp://poj.org/problem?id=2828TimeLimit:4000MSMemoryLimit:65536KTotalSubmissions:25988Accepted:12436DescriptionRailwayticketsweredifficulttobuyaroundtheLunarNewYearinChina,sowemustgetupearly
Enjoy_process
·
2020-07-10 23:28
数据结构
POJ2828
Buy Tickets
题目链接:POJ2828BuyTicketsTimeLimit: 4000MS MemoryLimit: 65536KTotalSubmissions: 17731 Accepted: 8787DescriptionRailwayticketsweredifficulttobuyaroundtheLunarNewYearinChina,sowemustgetupearlyandjoinalongq
qq_29480875
·
2016-05-14 01:00
线段树
单点更新
poj2828
Buy Tickets(线段树,单点更新)
题目链接:点这里!!!!题意:有N个人排队,每一个人都有一个val来对应,每一个后来人都会插入当前队伍前面有pos个人。要求把队伍最后的状态输出。(N #include #include #include #include #include #include #include #include #include #include #include #include #definePI2*asin(
u014325920
·
2016-04-26 19:00
线段树
POJ2828
线段树
点击打开链接题意:一个人接一个人的插队,后面的人更厉害,可以要到自己想要的位置。思路:既然后面的优先,那就从后面开始进入队列中,知道从后面开始就简单多了。#include #include #include #include #include usingnamespacestd; typedeflonglongll; constintmaxn=200010; constintinf=0x3f3f3
Dan__ge
·
2016-03-09 20:00
数据结构
线段树
ACM
poj
[
POJ2828
]Buy Tickets(线段树)
题目链接:http://poj.org/problem?id=2828插队问题,看样例看hits就能理解题意。难点在于:N≤200,000。插入数据从后往前,线段树节点维护当前空位置数量。比如第一个样例:4 077 151 133 269倒着插入,位置分别+1。首先是369。在位置3处插入后,此时位置3的父节点[3,4]显示还有1个位置,同层的节点[1,2]显示有两个。此时树根节点[1,4
Kirai
·
2016-02-17 14:00
POJ2828
Buy Tickets
首先让我们感谢昨天BestCoder的出题人Claris,以及各位Hacker,让我这个帮老妈刷票刷了半个小时结果,19:40多才开始打得水笔A了3道题,本来只有rank30左右的,结果硬生生地被hack到了rank10,结果rating还是只涨了100多(话说我某次rank30多也是涨100多啊),下一场还是不能打DIV1,不过没关系,反正DIV2都AK不了还做毛DIV1啊。然后呢,继续填坑。今
nlj1999
·
2016-02-14 13:00
【
poj2828
】Buy Tickets
DescriptionRailwayticketsweredifficulttobuyaroundtheLunarNewYearinChina,sowemustgetupearlyandjoinalongqueue…TheLunarNewYearwasapproaching,butunluckilytheLittleCatstillhadschedulesgoinghereandthere.Now
DMoon
·
2016-01-04 20:00
【poj 2828】 Buy Tickets(线段树/树状数组)
【
poj2828
】BuyTickets(线段树/树状数组)BuyTicketsTimeLimit: 4000MS MemoryLimit: 65536KTotalSubmissions: 16922 Accepted
ChallengerRumble
·
2015-12-10 11:00
【
poj2828
】Buy Tickets (segment tree+贪心)
F-BuyTicketsTimeLimit:4000MSMemoryLimit:65536KB64bitIOFormat:%I64d&%I64uSubmitStatusDescriptionRailwayticketsweredifficulttobuyaroundtheLunarNewYearinChina,sowemustgetupearlyandjoinalongqueue…TheLunar
ALPS233
·
2015-12-08 21:00
poj
segment-tr
poj2828
Buy Tickets
题意:一些人按顺序插队,给出每个人要插入的位置,求出最终的序列。只要求出每个人的位置即可。观察发现,倘若有多个人要求插入到第一个人后面,那么这些人中的最后一个达成心愿,而倒数第二个人则会站到这个人身后。既然如此,那我们只要按顺序从后向前处理。每个人(Val)最终的位置就是此时第(Pos+1)个空位。我们可以用线段树来完成每次的插入。每个节点保存区间剩余空位数,每次二分查找并修改第(Pos+1)个空
Elemmir
·
2015-12-01 16:00
线段树
poj
poj2828
Buy Tickets
BuyTicketsTimeLimit: 4000MS MemoryLimit: 65536KTotalSubmissions: 16584 Accepted: 8268DescriptionRailwayticketsweredifficulttobuyaroundtheLunarNewYearinChina,sowemustgetupearlyandjoinalongqueue…TheLuna
AaronGZK
·
2015-11-21 20:00
poj
poj2828
Buy Tickets
PS: 起初,很多人说这道题是一道线段树题,可是为什么呢?我一直没有头绪,后来看了解题报告的第一行,我明白了。原来这道题就是基本的线段树。 那个解题报告的第一行写着:倒叙插入,位置就是前边的空格数。如果对线段树了解的话,那你也就明白了。 废话不说了,上代码…… View Code 1 #include<iostream> 2 #include<string&
·
2015-11-12 18:38
poj
POJ2828
- Buy Tickets
题目大意 有n个陆续去售票口排队买票,每个人都会插队,第i个人会插到位置为pos[i]的人的后面,问最后队列的情况 题解 我们可以发现,对于第n个人,它插入的位置就是他最终站的位置,因此我们从第n个人开始处理,对于第i个人,找到第pos[i]+1个空位插入即可,然后空位减少一个,查找空位和对空位数量进行修改刚好可以用线段树来处理 代码: #include<iostream>
·
2015-11-11 17:05
poj
poj2828
题意:人们一个一个的来排队并插队,按人到来的顺序给出每个人插队的位置(插在第几个人后面),并告知每个人的id号,输出最终队伍的情况。 分析:可以用线段树,从最后来的一个人开始向来得更早的人遍历,这样pos(插在第几个人后面)的意义就变成了,前面有多少个空位。线段树上每个节点中存储的是当前时刻,该区间有多少空位。 View Code #include < iostream &g
·
2015-11-01 09:19
poj
poj2828
Buy Tickets 线段树 单点修改
题意: 买票插队问题,有 N 个插队行为,告知每次要插到第 i 个位置上,问最后它们的顺序是什么。 这种题,要从最后开始倒推,比如最后一个,在第i个位置上,则他就是排在第i了。 线段树:存储一段区间还有多少个空位。(刚开始我存储的是一段区间已经确定了多少个位置了,然后tle了) 注意:数据给的不是他插在哪里,而是他插队时前面有多少个人,所以++,即为插在第i个位置上。 我是在查询的同时更
·
2015-10-30 11:40
poj
poj2828
Buy Tickets
先将位置信息存入数组p,然后倒序插入线段树中,然后根据线段树区间空位的信息将v插入ans数组中合适的位置。利用了倒序插入时第i个元素最终在ans中的位置为插入时从ans左往右第i+1个空位处的这个规律。线段树的作用不是存储最后的v,而是为v插入ans中的合适位置提供标准。将查找合适位置的复杂度降到O(logn)在插入线段树时的标准是,区间左右孩子节点所剩的空位数。#include #include
EventQueue
·
2015-10-22 21:00
算法
线段树
ACM
poj
hduoj
POJ2828
插队
POJ2828BuyTickets题意:人们一个一个的来排队并插队,按人到来的顺序给出每个人插队的位置(插在第几个人后面),并告知每个人的id号,输出最终队伍的情况分析:从最后来的一个人开始向来得更早的人遍历,这样pos(插在第几个人后面)的意义就变成了,前面有多少个空位。线段树上每个节点中存储的是当前时刻,该区间有多少空位。具体分析了一下第一个样例,如图#include structnode{
daniel_csdn
·
2015-09-17 15:00
POJ2828
Buy Tickets(线段树求前n个人,单点更新)
链接:http://poj.org/problem?id=2828题意:一个排队的队列T组操作每次输入ab表示在第a个人后面插队,插队的人是b最后输出整个队伍的顺序思路:采用从后往前推的思路,往队列中填人在代码里解释的很清楚了,很好的题目!!#include #include #include #include #include #include #include #include #includ
xtttgo
·
2015-09-02 17:00
poj2828
链接:点击打开链接题意:就是后面人插队的问题,具体如图所示代码:#include #include #include usingnamespacestd; intnode[200000*3],ans[200000]; intx[200000],y[200000]; voidbuild(intpos,intl,intr,intid,intx){ intmid; if(l==r){ node[pos]
stay_accept
·
2015-08-08 10:00
POJ2828
Buy Tickets 线段树单点更新
题目链接:点击打开链接题目大意:有n个人,第i行表示的是第i个人(其编号为val[i])插到第pos[i]个人的后面,问你n次插队之后的最终结果,按排队顺序输出每个人的编号。分析:我们先把第一个人插入队中,然后顺序再插入一个人的时候,我们就需要更新其插入位置之后的所有位置,这样最坏的情况下就是O(n!)的复杂度了。但是如果换一种思维,我们注意到,最后一个人插入的位置即为他在队中的最终位置,其上一个
AC_Gibson
·
2015-05-18 15:00
【插队问题-线段树-思维巧妙】【
poj2828
】Buy Tickets
可耻的看了题解巧妙的思维逆序插入,pos代表的意义为前面要有pos个空格才OK;证明:仔细思考一下就觉得是正确的,但是要想到这种方式还是要很聪明,空格是前面的几个数字所形成的,所以要特地留出来,因为这几个空格是既定的事实线段树实现线段的意义:当前线段留的空格数,满足区间和性质代码如下:#include #include #include #include #include #include #in
zy691357966
·
2015-04-08 14:00
poj2828
Buy Tickets 单点更新线段树
BuyTicketsTimeLimit:4000MS MemoryLimit:65536KTotalSubmissions:14377 Accepted:7183DescriptionRailwayticketsweredifficulttobuyaroundtheLunarNewYearinChina,sowemustgetupearlyandjoinalongqueue…TheLunarNew
corncsd
·
2015-01-27 12:00
[线段树]poj 2182
思路: 和
poj2828
很相似,都是从后向前计算,建立一颗线段树,节点val值为,这个区间的空位数,然后从后向前更
暴风雪
·
2014-11-27 23:00
poj
poj2828
Buy Tickets
题意:有n个人去排队。输入按照人的到来顺序给,每次新来一个人i,他会排在Posi(Posi从0开始),如果Posi!=i-1,就意味着他插队了。求最后队列的顺序。 思路:线段树(单点更新),线段树存的是一个区间有多少个位置是空的。假设一开始有n个位置,都是空的。我们可以这样理解,当第i个人来的时候,他会排在Posi,后面来的人可能会插他的队,但是如果无视他后面来的人,那么最终他还是排
squee_spoon
·
2014-09-22 16:00
线段树
poj
poj2828
经典线段树应用 逆序插入
之前用指针存叶节点以为能少一遍遍历 结果提交上去还慢一些!思路:一开始看到这道题觉得应该是链表但是时间复杂度太高了(是我太嫩了- -)怎么才能按要求排好序呢?答案是看题解..好吧..记住有这种用法就好了..#include #include #include #definelsonnum>1,lson #definegr((l+r)>>1)+1,r,rson usingnamespacestd;
Hivoodoo
·
2014-09-06 17:00
线段树
ACM
poj2828
Buy Tickets线段树
BuyTicketsTimeLimit: 4000MS MemoryLimit: 65536KTotalSubmissions: 13424 Accepted: 6685DescriptionRailwayticketsweredifficulttobuyaroundtheLunarNewYearinChina,sowemustgetupearlyandjoinalongqueue…TheLuna
u014451076
·
2014-08-25 19:00
线段树
【线段树】
poj2828
BuyTicketsDescriptionRailwayticketsweredifficulttobuyaroundtheLunarNewYearinChina,sowemustgetupearlyandjoinalongqueue…TheLunarNewYearwasapproaching,butunluckilytheLittleCatstillhadschedulesgoingherean
hetangl2
·
2014-08-19 11:00
线段树
poj2828
倒序的线段树
为什么先从后面进行呢,因为最后插入的位置是不会变的,而一开始插入的点可能因为后面的点的插入导致后移,所以先从后铺面进行#include #include #include #include #include #include usingnamespacestd; constintmaxn=222222; #definelsonl,m,rt>1; build(lson); build(rson);
zjck1995
·
2014-08-03 17:00
POJ2828
Buy Tickets 【线段树】+【单点更新】+【逆序】
BuyTicketsTimeLimit: 4000MS MemoryLimit: 65536KTotalSubmissions: 12296 Accepted: 6071DescriptionRailwayticketsweredifficulttobuyaroundtheLunarNewYearinChina,sowemustgetupearlyandjoinalongqueue…TheLuna
u012846486
·
2014-07-08 00:00
POJ2828
POJ2828
题意:有n个的排队,每一个人都有一个val来对应,每一个后来人都会插入当前队伍的某一个位置pos。要求把队伍最后的状态输出。逆向思维。我们可以这样考虑,最后一个人一定会得到当前队伍他想要的位置,如果我们往前一个阶段,倒数第二个人也一定能得到他想要的位置……,也就是说,我们可以这样处理,我们把最后一个人插入,然后忽略它,再把倒数第二个人插入。即,我们找出当前队伍他想要插入的位置pos的真正坐标就可以
u013790563
·
2014-04-30 17:00
POJ2828
:Buy Tickets(线段树单点)
DescriptionRailwayticketsweredifficulttobuyaroundtheLunarNewYearinChina,sowemustgetupearlyandjoinalongqueue…TheLunarNewYearwasapproaching,butunluckilytheLittleCatstillhadschedulesgoinghereandthere.Now
libin56842
·
2013-10-24 17:00
线段树
poj
poj 2828 Buy Tickets
点击打开
poj2828
思路:树状数组/线段树单点更新分析:1题目给定n个人的位置pos和id,要我们求出最后n个人的位置2我们先来考虑朴素的算法,假设现在进来一个人那么我们把它放到pos的位置,那么pos
cgl1079743846
·
2013-09-08 11:00
POJ2828
:Buy Tickets
点击打开题目链接BuyTicketsTimeLimit: 4000MS MemoryLimit: 65536KTotalSubmissions: 10042 Accepted: 4842DescriptionRailwayticketsweredifficulttobuyaroundtheLunarNewYearinChina,sowemustgetupearlyandjoinalongqueue
l383137093
·
2013-06-07 18:00
数据结构
线段树
poj2828
之线段树单点更新
#include #include #include #include #include #include #include #include #include #defineINF99999999 usingnamespacestd; constintMAX=200000+10; intsum[MAX>1; BuildTree(n>1; if(sum[n=pos)returnUpdate(po
xingyeyongheng
·
2013-05-15 21:00
poj2828
线段树单点更新
#include #include #definelsonl,m,rt>1; build(lson); build(rson); } voidupdate(intx,intl,intr,intrt) { sum[rt]--; if(l==r) { t=l; return; } intm=(l+r)>>1; if(sum[rt=x) update(x,lson); else { x-=sum[rt=
wahaha1_
·
2013-03-19 11:00
POJ2828
线段树 插队(单点更新)
题目:BuyTickets#include #defineN200010 #definelsonl,m,rt>1; Build(lson); Build(rson); } voidUpdate(intp,intl,intr,intrt) { tree[rt]--; if(l==r) { id=r; return; } intm=(l+r)>>1; if(tre
ACdreamers
·
2013-02-09 16:00
POJ2828
思维难度较好的一道线段树
题目大意:一条队伍,给你每个人插队的状态,得到最后的队伍状态思路:容易从后方去思考,首先最后一个百分之百可以确定的而倒数第二个 倒着来看他之前必定还有pos[i]个人(未包括后面的人)所以能需要空pos[i]个人的位置就是倒数第二个人的位置,同理可得倒数第三倒数第四,而线段树就去维护空位的信息#include #definemaxn200005 #definelsonl,m,rt>1; build
zy691357966
·
2012-07-15 15:00
c
query
Build
首届华中区程序设计邀请赛暨第十届武汉大学程序设计大赛网络预赛C题(HDOJ-4217)
这题比赛的时候是狐狸大大敲的..先用了list..结果超时了..果断树状数组A之...其实这题当年做过很类似的:
POJ2828
插队排队问题..
kk303
·
2012-04-16 14:00
c
网络
存储
insert
poj2828
线段树
poj2828
对方法不理解透彻!照搬是没有用的,要彻底理解。一些特殊情况没出什么问题。
·
2012-03-10 01:00
poj
POJ2828
Buy Tickets
倒序插入,这样POS的意义就变为找到这么一个位置可以放置这个人, 使得从这个位置往前数共有POS个空位,线段树的节点中cnt表示在[l,r)区间中共有多少个空位/******************************************************************************* #Author:NeoFung #Email:
[email protected]
neofung
·
2012-01-27 22:00
POJ2828
Buy Tickets 线段树
思路:查看了网上不少博客,感觉都写得很朦胧,都说从后往前插。这个倒好理解。但是很多都没说清楚为什么用线段树,用的思路。搞得我一头雾水。毕竟是刚接触线段树,对线段树理解也不够。今天晚上硬着头皮推敲。终于有点思路了。我的理解:就例子 020119138031从后往前插。首先是031.位置是精确的就是在第0位。然后是138.38想插在第1位。但是这是38一厢情愿,他能不能最终落在第1位,必须经过031的
wuyanyi
·
2011-12-04 13:00
poj 2182 || hdu 2711 Lost Cows
同
POJ2828
。都是从往前推,插空位即可。
zxy_snow
·
2011-08-04 17:00
zkw线段树 逆推
poj2828
动态插入在序列中任意位置,询问最终序列。可以用块状链表做,但同样可以用编程复杂度和时间复杂度更优的zkw线段树做,只需思维上的转换。思路来自罗雨屏从正面来看,这题实在很难处理,每个数的位置都处于动态变化中,但从反面来看,每个数的位置其实都是确定的,它要求放在第x个位置,其实就是逆推时,当前第x个为空格的位置,我们只需维护当前区间有多少空格,便可在log(n)时间快速确定数的位置,而且实现比块状链表
huyuncong
·
2011-05-27 14:00
poj2828
/**poj2828.cpp**Createdon:2010-8-11*Author:friendy*/#include#include#includeusingnamespacestd;//又是一道线段树的题目,感觉很经典,刚开始就想着用链表,后来看到会超时,也就没写//根本没想到会用到线段树。这个思想很奇特,从后面加进来,每个点维持前面还有多少个空位置//最后插入的位置都是正确的位置,而如果和
zhang20072844
·
2010-08-11 23:00
c
tree
insert
2010
上一页
1
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他