线段树
jvruo_shabi
这个作者很懒,什么都没留下…
展开
-
[NOIP 2017 提高组] 列队
传送门 看到这是NOIP2017tg压轴题,怕了怕了(个鬼)……。 首先我们可以看出这是一个线段树的题目废话,我们先来考虑一个特殊的情况,即 n=1n=1n=1 的情况。 对于这种数据规模,我们肯定暴力艹不过去麻烦作者在考虑超不超时前先考虑数组开的下不,所以,我们又看到 q≤3×105q\leq 3\times 10^5q≤3×105,于是就可以使用一颗线段树来维护: 先将线段树 1∼n1\sim n1∼n 区间每个节点的权值设为这个节点的区间长度(即一开始 1∼n1\sim n1∼n 位置站满了人),对于原创 2020-11-09 22:06:51 · 319 阅读 · 0 评论 -
NKOJ 4396 站军姿
题目描述 用一颗丑陋的线段树维护每个位置的人数即可。 具体可以将移到后面的同学也看作是在一个位置 iii,不需要特殊处理。 对于查询操作,我们可以从根节点开始遍历这线段树,途中判断第 xxx 个人在它的哪一棵子树,最终查出它的位置。显然这要动态开点,不然超时超空间。 设我们查询出来的位置为 kkk,那么如果 k≤nk\le nk≤n,这个人编号就是 kkk,否则说明这个人出过至少一次队,所以说搞一个 num[i]num[i]num[i] 记录因为出过队而站到 n+in+in+i 位置的同学的编号。 Code原创 2020-11-04 20:44:14 · 232 阅读 · 0 评论