珂朵莉树:区间推平
发布时间
阅读量:
阅读量
请设计一种特殊的数据结构,具备以下功能:
- l r x :对区间 [l,r] 内的所有元素增加 x
- l r x :将区间 [l,r] 内的所有元素设置为 x
- l r x :查询区间 [l,r] 内所有元素按升序排列后的第 x 个数值(即该区间第 x 小的数,若存在相同数值则各自计数,且满足 1\leq x \leq r-l+1)
- l r x y :计算区间 [l,r] 内每个元素的 x 次幂之和,并对 y 取模的结果(即 (\sum^r_{i=l}a_i^x) \mod y)
#include <iostream>
#include <set>
#include <algorithm>
#include <vector>
#include <cstdio>
using namespace std;
typedef long long ll;
const ll MOD = 1000000007;
const ll MAXN = 100005;
struct Node {
ll l, r;//l和r表示这一段的起点和终点
mutable ll v;//v表示这一段上所有元素相同的值是多少
全部评论 (0)
还没有任何评论哟~
