Description Railway tickets were difficult to buy around the Lunar New Year in China, so we must get up early and join a long queue… The Lunar New Yea
转载 2017-04-15 09:27:00
64阅读
2评论
题意:有n个的排队,每一个人都有一个val来对应,每一个后来人都会插入当前队伍的某一个位置pos。要求把队伍最后的状态输出。 逆向思维。我们可以这样考虑,最后一个人一定会得到当前队伍他想要的位置,如果我们往前一个阶段,倒数第二个人也一定能得到他想要的位置……,也就是说,我们可以这样处理,我们把最后一个人插入,然后忽略它,再把倒数第二个人插入。即,我们找出当前队伍他想要插入的位置pos的真正坐标就可以。然后去更新整个队伍的长度。如此循环,直到最后一个人。线段树在单点更新的时候,感觉和二分查找是很相似的,可以用它实现。// Time 1766ms; Memory 8684K#include#i..
转载 2013-07-31 20:46:00
44阅读
2评论
题目传送门 一、题目大意 有很多人排队,其中有插队的,每个人都有一个值。现在给出这些人排队插队的位置以及他们的值,要求输出最后形成的队列。 二、解题思路 每一次插队就像线段树里面的单点更新,只不过需要考虑插入位置。 插队的肯定在被插队的前面并且最后插队的人的位置是不变的,所以建一颗树来维护当前区间空
原创 2022-05-01 22:36:27
122阅读
Problem DescriptionThere are several switches and lamps in the room, however, theral switches, and one switch may
原创 2022-11-09 18:32:05
31阅读
题意:人们一个一个的来排队并插队,按人到来的顺序给出每个人插队的位置(插在第几个人后面),并告知每个人的id号,输出最终队伍的情况。分析:可以用线段树,从最后来的一个人开始向来得更早的人遍历,这样pos(插在第几个人后面)的意义就变成了,前面有多少个空位。线段树上每个节点中存储的是当前时刻,该区间有多少空位。View Code #include <iostream>#include <cstdlib>#include <cstring>#include <cstdio>usingnamespace std;#define maxn 200005s
转载 2011-03-20 15:52:00
21阅读
2评论
很容易想到一种动态的做法:平衡树…… 或者是二分+树状数组 但,前者编程复杂度较大,而且据说会被卡(没试过);后者理论上超时(据说可以擦边过?); 所以要尝试新的算法; 倒着考虑,显然最后一个对象的位置是最容易确定,顺带着,容易发现, 在第i个人后插入,就是在当前队列中前面有i个空位的空位置; 于是还是可以用平衡数…… 当然更简单快捷的方法是线段树,每个节点表示这个区间还有的空位数; 然后类比平衡
转载 2014-03-08 22:58:00
28阅读
2评论
// 14460K 3766MS G++#include #include #define MAX 200100struct TreeNode { int val; int l; int r; int insertPosN
原创 2023-05-23 16:07:14
31阅读
有N个人排队,每一个人都有一个val来对应,每一个后来人都会插入当前队伍的某一个位置pos。要求把队伍最后的状态输出。 倒序插入,线段树单点更新,从头到尾输出线段树的状态 #include<cstdio> #include<algorithm> #include<cstring> using nam
转载 2020-02-17 18:42:00
18阅读
2评论
POJ-2828-Buy Tickets http://poj.org/problem?id=2828 线段树,逆序插入 #include<iostream>#include<cstdio>#include<cstring>#include<cstdlib>using namespace std;#define N 200010struc...
原创 2023-08-24 11:17:19
67阅读
题意:排队买票,但是 中途 出现插队情况,比如 0 123,代表值为123的人 插入到 0 的位置,如果后面 出现 0 456,那么新的 0的位置就是 456,123就变成是 1的位置了 分析:这道题应该从后往前插入,当要插的位置小于左边的空位数时,就往左边插,否则往右边插,并且此刻插的位置要减去左
转载 2016-06-28 19:46:00
67阅读
2评论
题意:一家店门口有n个人在排队,按顺序给出每个人要站d;c
原创 2023-06-29 00:02:15
14阅读
Buy TicketsPOJ - 2828 Railway tickets were difficult to buy around
原创 2023-06-09 14:02:31
35阅读
Buy TicketsTime Limit: 4000MSMemory Limit: 65536KTotal Submissions: 7553Accepted: 3599DescriptionRailway tickets were difficult to buy around the Lunar New Year in China, so we must get up early and join a long queue…The Lunar New Year was approaching, but unluckily the Little Cat still had schedule
原创 2021-07-29 16:24:54
174阅读
http://poj.org/problem?id=2828学到的思维:1、变化的或者后来的优先影响前面的,那么从最后一个往前看,最后一个就成了 确定的, 而且后来的也能够确定----假设从前往后,全部的随时都不是确定的2、线段树叶子节点直接维护区间(线段)信息,非叶子节点v维护的是以v为树根的整个...
转载 2015-05-05 17:43:00
197阅读
2评论
线段树的题总是这么火。。。这题很多人都说想法很精妙啊,,赞一个。说有n个人插队,给定插队的先后顺序和插
转载 2013-03-30 15:54:00
43阅读
2评论
【题目链接】 http://poj.org/problem?id=2828 【算法】 离线用线段树维护序列即可 【代码】
转载 2018-07-16 10:49:00
88阅读
2评论
POJ_2828     这个题目和POJ_2182很像,我们可以从后往前依次查询,排在p的右边就说明自己是排在第p+1位的,因此,我们可以维护一个线段树,节点值表示当前区间内还有多少个位置,寻找到当前第p+1个位置的所在地时,就把value存进去,然后把这个位置删除,即自底向上更新一遍节点值即可。 #include<stdio.h>#include<string.h>#
转载 2011-10-27 16:20:00
53阅读
2评论
题意:给定一个队列,有n个人,每个人按顺序插入到队列中的某个位置,问最后的队列序列 解题思路:无力吐槽自己的智商了,神题,完全利用了线段树的性质进行搜索     解题代码: 1 // File Name: poj2182.c 2 // Author: darkdream 3 // Created Time: 2013年07月29日 星期一 22时05分45秒 4 5 #i
转载 2013-07-31 01:27:00
35阅读
2评论
Buy TicketsTime Limit: 4000MSMemory Limit: 65536KTotal Submissions: 10858Accepted: 5272DescriptionRailway tickets were difficult to buy around the Lunar New Year in China, so we must get up early and join a long queue…The Lunar New Year was approaching, but unluckily the Little Cat still had schedul
转载 2013-09-04 18:11:00
48阅读
2评论
  • 1
  • 2
  • 3
  • 4
  • 5