1 solutions
-
1
找规律大法好首先,暴力打表得到这串数。
10 180 2610 34200 423000 5040000 58500000 666000000
做一遍前缀和。
10 190 2800 37000 460000 5500000 64000000 730000000
再做一遍前缀和。
10 200 3000 40000 500000 6000000 70000000 800000000
可以看出此时第 项为 。
于是返回去,我们直接两次差分即可。
for(int i = 1;i <= n;i++){ ans[i] = ans[i - 1] * 10 % mod; } ans[0] = 0; for(int i = 1;i <= n;i++){ ans[i] = ans[i] * i % mod; } for(int i = 1;i <= n;i++){ res[i] = ans[i] - ans[i - 1]; } for(int i = 1;i <= n;i++){ ans[i] = res[i] - res[i - 1]; } for(int i = n;i >= 1;i--){ cout<<(ans[i] % mod + mod) % mod<<' '; }
- 1
Information
- ID
- 3446
- Time
- 2000ms
- Memory
- 256MiB
- Difficulty
- 6
- Tags
- # Submissions
- 3
- Accepted
- 1
- Uploaded By