A. 增殖数列之和
增殖数列之和
春招模拟赛第十七场|小红📕|2023.4.23
- Status
- Done
- Rule
- IOI
- Problem
- 3
- Start at
- 2023-5-7 19:00
- End at
- 2023-5-7 20:18
- Duration
- 1.3 hour(s)
- Host
- Partic.
- 33
You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.
题目定义了一个数列 (F(x)),满足 (F(0)=1),且对于 (x\ge 1): [ F(x) = \left( x+1 + \sum_{i=0}^{x-1} (i+1) \cdot F(i) \right) \bmod (10^9+7) ]
小蓝最近在研究一种特殊的递推数列,这种数列在数字增殖模型中经常出现。数列 F 的定义如下:
现在他获得了一个长度为 n 的正整数序列 a1,a2,…,an。请你帮他计算所有 F(ai) 之和,即
S=i=1∑nF(ai)由于结果可能很大,请输出 S 对 109+7 取模的结果。
数据规模与约定:序列长度 n 不超过 105;每个 ai 均为正整数且不超过 105。
第一行包含一个整数 n,表示序列的长度。 第二行包含 n 个正整数,第 i 个数为 ai,相邻整数之间用空格分隔。
输出一个整数,表示 ∑i=1nF(ai) 对 109+7 取模的结果。
输入
1
1
输出
3
说明
序列中只有一个元素 a1=1,因此需要计算 F(1)。 已知 F(0)=1。根据递推式:
F(1)=(1+1+i=0∑0(i+1)⋅F(i))mod(109+7)求和项只有 i=0:(0+1)⋅F(0)=1⋅1=1。
于是 F(1)=(2+1)mod(109+7)=3。答案为 3。
输入
3
2 3 4
输出
257
说明
序列包含三个元素 2,3,4。我们依次递推计算 F 的值:
257。输入
2
5 5
输出
2474
说明
序列包含两个 5,需要计算 2×F(5)。
由前面的递推已知 S3=201,F(4)=206,计算得 S4=201+5×206=1231。
于是 F(5)=6+S4=6+1231=1237。
总和为 1237+1237=2474,模 109+7 后仍为 2474。
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册