题目名称 4411. 数列求和
输入输出 oeis.in/out
难度等级 ★★★☆
时间限制 5000 ms (5 s)
内存限制 512 MiB
测试数据 10
题目来源 GravatarRpUtl 于2026-05-19加入
开放分组 全部用户
提交状态
分类标签
查看题解 分享题解
通过:9, 提交:44, 通过率:20.45%
GravatarRpUtl 100 1.282 s 15.12 MiB C++
Gravatarxuyuqing 100 3.884 s 14.74 MiB C++
Gravatarxuyuqing 100 4.035 s 14.78 MiB C++
GravatarRpUtl 100 6.765 s 45.71 MiB C++
GravatarRpUtl 100 12.647 s 14.91 MiB C++
GravatarRpUtl 100 13.404 s 14.92 MiB C++
GravatarRpUtl 100 13.557 s 14.91 MiB C++
GravatarLikableP 100 13.725 s 12.74 MiB C++
GravatarRpUtl 100 13.778 s 14.38 MiB C++
GravatarLikableP 70 17.628 s 12.70 MiB C++
本题关联比赛
2026.5.30
关于 数列求和 的近10条评论(全部评论)
追评:我本以为编译器理应在确定某值为常量后,直接启用巴雷特约减之仙术。但是不知为何,即使是后来我使用奇技淫巧,将无巴雷特约减的代码的模数定为了常量,其速度也几乎没有变化。有点意思!
Gravatarxuyuqing
2026-06-04 20:34 2楼
别样的卡常大战·2
数列求和邀请我说:“你敢不敢和我举行卡常大战?”我欣然前往。
我先照着大佬的题解打了一份代码,交上 COGS 后惨惨地 Wa 了,大佬让我试试洛谷,同样地 Wa 。于是我修了几处 Bug,总算在洛谷上 AC 了。
可是数列求和之间,亦有分别,把这道题搬到 COGS 的大佬决定稍作修改,将这题的模数改到了非固定值,使得我的代码跑得飞慢。
我尝试使用 inline 这种奇技淫巧,收效不大。register 想必也不会有什么作用。快读虽好,但这题的输入输出都不多,估计也没什么用。
绝望之下,我在脑海中搜索到五个神奇字符:巴雷特约减。
我狠狠钻研了 Barrett Reduction 的奥秘,写了一份板子到我的代码里,然后狠狠提交到了 COGS 上,狠狠 AC!
最终我在排行榜上站在第二,这对数列求和的打击比屠杀模数还要大,爽!
Gravatarxuyuqing
2026-06-04 20:07 1楼

4411. 数列求和

★★★☆   输入文件:oeis.in   输出文件:oeis.out   简单对比
时间限制:5 s   内存限制:512 MiB

【题目背景】

Kyouko 是数学天才的说是,闲着没事不知道在哪里整个数列求和的题给你。

【题目描述】

给定 $n,a,k,P$,求出:
$$\left(\sum_{i=1}^n i^ka^i\right)\bmod P$$大洋里

【输入格式】

一行四个整数,分别是 $n,a,k,P$。

【输出格式】

一行一个整数,表示答案。

【样例输入1】

3 4 0 1000000007

【样例输出1】

84

【样例输入2】

3 10 1 1000000007

【样例输出2】

3210

【样例输入3】

3 9 2 1000000007

【样例输出3】

6894

【数据规模与约定】

本题共 $10$ 个测试点。

对于测试点 $1\sim 2$,有特殊性质满足 $n\le 10^6$。

对于测试点 $3\sim 4$,有特殊性质满足 $k=0$。

对于测试点 $5\sim 6$,有特殊性质满足 $a=1$,其中两个测试点分别满足 $k\le100/k\le 2000$。

对于测试点 $7\sim 8$,有特殊性质满足 $k\le 100$。

对于测试点 $9\sim 10$,无特殊性质。

对于所有测试点,编号为奇数的测试点满足 $P=10^9+7$,编号为偶数的测试点满足 $5\times 10^8\le P\le 10^9+7$。

对于所有的测试数据,保证 $1\le n\le 10^{18},1\le a\le 10^9,0\le k\le 2000$。

【来源】

???