题号:NC212280
时间限制:C/C++/Rust/Pascal 3秒,其他语言6秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld
题目描述
假设 fib(n) 为斐波那契数列的第n项,其中fib(0)=0, fib(1)=1,且fib(n)=fib(n-1)+fib(n-2), (n>1)。
假设S是一个可重集合

,f(S) 定义为
有一个数组

,牛妹会对数组进行q次操作,每次操作可能是以下两种操作中的一种:
1. 把

变为v;
2. 计算
)
。
对于每个操作2,输出答案模998244353。
输入描述:
第一行两个整数n, q。
第二行n个整数
接下来q行,每行代表一个操作:
如果是操作1,格式为1 p v ;
如果是操作2,格式为2 l r
输出描述:
输出答案,模998244353。
示例2
输入
复制
10 10
883 219 454 809 569 200 178 387 304 716
2 4 10
1 4 368
2 4 8
2 1 8
1 5 764
2 2 4
2 5 7
1 2 174
1 5 115
2 3 8
输出
复制
377148874
524944841
251771778
173440185
184756056
974115131
备注:
对于10%的数据,满足 
对于50%的数据,满足 
对于70%的数据,满足 
对于100%的数据,满足
,
,
。