luogu#P11318. [RMI 2021] 奇树 / Weirdtree

    ID: 35156 远端评测题 1000ms 500MiB 尝试: 0 已通过: 0 难度: 6 上传者: 标签>暴力数据结构2021交互题吉司机线段树, segment tree beatsRMI(罗马尼亚)

[RMI 2021] 奇树 / Weirdtree

题目背景

译自 9th Romanian Master of Informatics, RMI 2021 D2T3。1s,0.5G\texttt{1s,0.5G}

提交时,需要在文件头添加

void initialise(int N, int Q, int h[]);
void cut(int l, int r, int k);
void magic(int i, int x);
long long int inspect(int l, int r);

请使用 C++17 或更高版本提交。

题目描述

这是一道(函数式)交互题。

你需要维护一个长度为 NN 的非负整数序列 h1,h2,,hNh_1,h_2,\cdots,h_N。有三种操作,一共 QQ 次:

  • 操作 1(砍树)。给定 l,r,kl,r,k。执行 kk 次以下操作:

    • 若区间 [l,r][l,r] 的最大值为 00,无事发生;
    • 否则,将最大值减去 11(如果存在多个,取下标最小的一个)。

    形式化地:

    • maxi[l,r]{hi}=0\displaystyle \max_{i\in [l,r]} \{h_i\}=0,无事发生。
    • 否则,记 x=minarg maxi[l,r]{hi}\displaystyle x=\min\argmax_{i\in [l,r]}\{h_i\}(换句话说,满足 x[l,r],hx=maxi[l,r]{hi}x\in [l,r],h_x=\max_{i\in [l,r]}\{h_i\} 的最小的 xx)。令 hxhx1h_x\gets h_x-1
  • 操作 2(施法)。给定 x,vx,v,令 hxvh_x\gets v

  • 操作 3(查询)。给定 l,rl,r,求 i[l,r]hi\displaystyle \sum_{i\in [l,r]} h_i

实现细节

你不需要,也不应该实现 main 函数。你应当实现以下函数:

void initialise(int N, int Q, int h[]);
void cut(int l, int r, int k);
void magic(int i, int x);
long long int inspect(int l, int r);
  • initialise 函数:
    • 将在最开始被调用恰好一次。
    • N:数组长度。
    • Q:询问次数。
    • h[]:长度为 (N+1)(N+1) 的数组,h[i]1iN1\le i\le N)表示数列中的第 ii 个数。
  • cut 函数:
    • 见操作 1。
  • magic 函数:
    • 见操作 2。
  • inspect 函数:
    • 见操作 3。
    • 返回一个整数表示答案。

你可以自由使用全局变量,STL 库等。

为了方便选手本地测试,我们在附件中提供了 grader.cpp\texttt{grader.cpp}。下面的输入输出格式均表示 sample grader 的输入输出格式。

输入格式

第一行,两个正整数 N,QN,Q;

第二行,NN 个整数 h1,,hnh_1,\cdots,h_n

接下来 QQ 行,每行若干个整数:第一个整数表示操作类型,接下来若干个数表示参数。

输出格式

对于每个操作 3,输出一行表示答案。

6 10
1 2 3 1 2 3
1 1 6 3
3 1 6
1 1 3 3
3 1 6
1 1 3 1000
3 1 6
2 1 1000
3 1 6
1 1 3 999
3 1 5
9
6
5
1005
4

提示

对于 100%100\% 的数据,保证:

  • 1N,Q3×1051\le N, Q\le 3\times 10^5
  • 1iN1\le i\le N
  • 1lrN1\le l\le r\le N
  • 0x,k,hi1090\le x,k,h_i\le 10^9
子任务编号 N,QN,Q\le 特殊性质 得分
1 1 103 10^3 A 55
2 2 8×104 8\times 10^4 88
3 3 103 10^3 B
4 4 3×105 3\times 10^5 1919
5 5 C 1010
6 6 8×104 8\times 10^4 2121
3×105 3\times 10^5 2929
  • 特殊性质 A:k=1k=1
  • 特殊性质 B:没有操作 2。
  • 特殊性质 C:l=1,r=Nl=1,r=N(这对操作 1,31,3 都有效)。