平衡树
文章平均质量分 50
seeeagull
这个作者很懒,什么都没留下…
展开
-
[cf1405E]Fixed Point Removal(平衡树+树状数组)
编号为1-n的纸牌,按一定顺序排列,每次可以移走放在第i个且编号为i的纸牌,右边的自动向左补齐。每次询问限定了左边x张和右边y张不能动,问最多移走多少张。好像和电脑里的“纸牌”有点像?为了移走尽量多的话,如果同时有多张可以拿,显然应该先拿最右边的,这样保证其他已经可以被拿的牌不受影响,且可能产生更多能被拿走的牌。每次先拿走一张,之后右边所有牌序号-1,这个操作似乎让我们想到了平衡树。如果不考虑多次有限制的询问,只考虑原始序列能拿走多少张,显然简单的平衡树操作就可以处理。考虑如果有限制,会影响拿牌原创 2020-09-09 10:14:27 · 379 阅读 · 0 评论 -
[cf420D]Cup Trick(平衡树)
题目还是比较直接的。模拟一下过程然后发现,只要从后向前做,一开始每个节点都为0,每次找到第一个节点,标记为xi,把它从平衡树上分离,再插到第yi-1个节点后面即可。如果要标记的节点已经不为0,且不等于xi,输出-1;如果xi已经在平衡树中,且不是第一个节点,输出-1.#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int N=1000010;stru原创 2020-09-06 09:49:35 · 276 阅读 · 0 评论