有一棵 个点的树,每个点上有一个二叉搜索树。
然后依次进行 次操作:
1 u v x
:在 路径上每个点的二叉搜索树中插入元素 ,即 执行 :void insert(int&p,int x){ if(!p) return p=x,void(); if(x<p) insert(ch[p][0],x); else insert(ch[p][1],x); }
0 u w
:在点 上的二叉搜索树中执行 ,求其返回值:long long ask(int p,int x){ if(x==p) return x; if(x<p) return ch[p][0]?ask(ch[p][0])+p:p; else return ch[p][1]?ask(ch[p][1])+p:p; }
,每次 操作的 互不相同。
QOJ2211 IOI Problem Revised 做题记录
有 n 个人在一个长 L 的环上,第 i 个人位于坐标 ai 处。你要选择 k 个关键点,最小化每个人到最近的关键点的距离的和。输出方案。
1≤k≤n≤2×105,1≤L≤1012。
CF1349F1 Slime and Sequences (Easy Version)
定义一个长 n 的正整数序列是好的,当且仅当对于每一个出现过的 k(k>1),其最后一次出现前 k−1 出现过。
给定 n,对于每个 i∈[1,n] 求所有好序列中 i 的出现次数和,对 998244353 取模。
1≤n≤5000。
QOJ 8527 Power Divisions 做题记录
给定一个长 n 的序列 a,定义一个区间 [l,r] 是好的,当且仅当存在某个 x 使得 2x=i=l∑r2ai。求将 a 划分为若干个好的区间的方案数,对 109+7 取模。
1≤n≤3×105,0≤ai≤106。
0%