肥不拉几树:数列维护问题 - 代码实现与优化\n\n问题描述\nSW发明了“肥不拉几树”,但他懒得写代码了……\n\n您需要写一种数据结构来维护一个数列,其中需要提供以下操作:\n\n1. 在数列后方插入 $F_1\cdots F_x$(斐波那契数列:$1,1,2,3,5,8\cdots$)\n2. 在数列前方插入 $F_1\cdots F_x$ \n3. 在数列后方删去 $x$ 个数\n4. 查询数列区间 $[x,y]$ 的最大值\n5. 查询数列区间 $[x,y]$ 的和\n\n数列一开始为空,删除操作与查询操作保证数列内有足够的数\n\n输入格式\n第一行为 $n$,表示操作的个数,下面 $n$ 行每行,对于操作 $1,2,3$ 有两个正整数 $\text{op}$ 和 $x$,对于操作 $4,5$ 有三个正整数 $\text{op},x$ 和 $y$,$\text{op}$ 表示操作的序号($1 \leq $\text{op}$ \leq 5 $) \n\n输出格式\n对于操作 $4,5$ 每行输出一个整数,表示查询结果。由于输出可能较大,请将输出结果 $mod 998244353$\n\n注意,输出结果并非为模后数值最大值,而是模前数值最大值!\n\n样例 #1\n\n### 样例输入 #1\n\n\n6\n1 5\n3 2\n4 1 2\n1 3\n2 2\n5 3 5\n\n\n### 样例输出 #1\n\n\n2\n4\n\n\n提示\n\n以下是每个操作后数列的内容:\n\n- $1,1,2,3,5$\n- $1,1,2$\n- $1,1,2$(查询 $[1,2]$ 的最大值结果为 $2$)\n- $1,1,2,1,1,2$\n- $1,1,1,1,2,1,1,2$\n- $1,1,1,1,2,1,1,2$(查询 $[3,5]$ 的和结果为 $4$)\n\n对于 $40%$ 数据,保证 $x,y\leq1000,n\leq 100$\n\n对于 $100%$ 数据,保证对于操作 $1,2,3$,保证 $0<x<\text{len}$(数列长度)。对于操作 $4,5$,保证 $0 \leq x,y< \text{len}$。数据保证 $0\leq\ x,y\leq1e6,0<n\leq 1e6$.

肥不拉几树:数列维护问题 - 代码实现与优化

原文地址: https://www.cveoy.top/t/topic/qzrd 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录