luogu#P11617. [PumpkinOI Round 1] 递推

    ID: 35488 远端评测题 1000ms 512MiB 尝试: 0 已通过: 0 难度: 4 上传者: 标签>数学递推2025Special JudgeO2优化生成函数Ad-hoc洛谷比赛

[PumpkinOI Round 1] 递推

题目背景

一个简单的问题,什么是递推?

题目描述

定义一个数列 {a0an1}\{a_0 \dots a_{n - 1} \} 的递推式为满足下式的序列 {r0rm}\{r_0\dots r_m\}

$$\sum_{j = 0} ^ m r_j a_{i - j} = 0, \forall i \ge m $$

mm 称为该递推式的阶数。特别地,r00r_0\neq 0

给你一个无限长的数列 {ai}\{a_i\} 的前 nn 项以及数列 {ai}\{a_i\} 的一个阶数为 nn 的递推式 {bi}\{b_i\}

要求求出数列 {ai}\{a_i\} 的所有项之和。答案对 998244353998244353 取模。

可以证明,对于任意一个模 998244353998244353 意义下输入,都存在实数意义下的一个对应数列的答案是收敛的。

输入格式

第一行一个正整数 nn

第二行输入 nn 个整数,表示序列 {ai}\{a_i\} 的前 nn 项即 {a0an1}\{a_0 \dots a_{n-1}\} 在模 998244353998244353 意义下的值。

第三行输入 n+1n+1 个整数,表示递推式 {b0bn}\{b_0\dots b_n\} 在模 998244353998244353 意义下的值。

输出格式

输出一行一个整数,表示数列 {ai}\{a_i\} 的所有项之和对 998244353998244353 取模的结果。

保证答案可以在模 998244353998244353 意义下表示,即如果最终的答案为最简分数 qp\frac qp(可以证明答案肯定是一个有理数),保证 p≢0(mod998244353)p\not\equiv0\pmod {998244353}

1
1
1 499122176

2

2
1 1
1 199648870 99824435

14
1
1
1 499122177

665496236

提示

样例解释 #1

49912217612(mod998244353)499122176\equiv -\frac12\pmod {998244353}

in,ai12×ai1=0\forall i\ge n,a_i-\frac12\times a_{i-1}=0ai=12×ai1a_i=\frac12\times a_{i-1},即数列 {ai}\{a_i\} 是等比数列 1,12,14,1,\frac12,\frac14,\dots。其和收敛于 22

样例解释 #2

$199648870\equiv -0.6\pmod {998244353},99824435\equiv -0.3\pmod {998244353}$。

$\forall i\ge n,a_i-0.6\times a_{i-1}-0.3\times a_{i-2}=0$ 即 ai=0.6×ai1+0.3×ai2a_i=0.6\times a_{i-1}+0.3\times a_{i-2}。经计算,其和收敛于 1414

本题使用子任务捆绑/依赖

对于所有子任务,1n5×1031\le n\le5\times 10^30ai,bi<9982443530\le a_i,b_i< 998244353。特别地,b00b_0\neq 0

子任务编号 分值 nn\le 依赖
11 3030 11
22 22 11
33 4040 5×1035\times 10^3 1,21,2