一道让我做得相当高兴的题目。
原题链接 (这是付费比赛。)
题意简述
给定长度为 n 的序列 a。定义函数 f(S)=T⊆S∑F2(∑s∈Ts),也即“对于 S 的所有子集,求 F(子集所有元素之和)的平方 之和”。其中 F(x) 为斐波那契数列的第 x 项。有F(0)=0,F(1)=1,F(x)=F(x−1)+F(x−2)(x>1)。
你需要支持以下操作,操作总数为 m:
1 x y
:将 ax 修改为 y;
2 l r
:输出 i=l∑rj=i∑rf({ai,ai+1,⋯,aj}),对 998244353 取模。
数据范围:对于 50% 的数据,有 n,m≤100;对于 70% 的数据,有 n,m≤1000;对于 100% 的数据,有 n,m≤105,ai≤105。
(更多…)
More