使徒卢克的密码¶
背景故事¶
冒险家击败使徒卢克后,缴获了许多宝物,其中有一个保险箱。保险箱每天早晨 6:00 重置密码,每天可以打开一次,从中获得宝物。
活动原本希望玩家开动脑筋解开密码,但大家往往直接上网搜索攻略。作为一家网站的编辑,你需要算出活动期间 \(N\) 天的密码,为玩家准备攻略。第 \(i\) 天的密码为下文定义的 \(A_i\) .
形式化问题描述¶
给定整数 \(N,G,k,b\) ,对 \(1\le i\le N\) 求
\[
A_i=\sum_{j=G}^{G+i-1}H(kj+b).
\]
当 \(p\ge1\) 时,定义
\[
H(p)=\left\lfloor\sqrt{\frac{p!((p-1)!+2)+p}{p^3}}-\left\lfloor\frac{(p-1)!}{p}\right\rfloor\right\rfloor.
\]
阶乘、根号和取整均按精确数学意义解释,且 \(0!=1\) .另行定义 \(H(0)=0\) .
输入格式¶
一行四个整数 N G k b .
输出格式¶
输出 \(N\) 行,第 \(i\) 行为 \(A_i\) .
样例 1¶
输入¶
10 0 1 0
输出¶
0
1
2
3
3
4
4
5
5
5
样例 2¶
输入¶
5 1 2 0
输出¶
1
1
1
1
1
样例 3¶
输入¶
3 1 1 0
输出¶
1
2
3
样例说明¶
样例 1 中,参数依次为 0 到 9;非零贡献来自 1、2、3、5、7。样例 2 只有参数 2 产生贡献。样例 3 特别展示参数 1 的贡献也为 1。
参数、单项贡献与前缀和。
数据范围与分组¶
\(1\le N\le5000\) ,\(0\le G\le10^5\) ,\(1\le k\le10^9\) ,\(0\le b\le10^{14}\) .
规格由 Codex(GPT-6)重新设计:补充 \(p=0\) 的定义,明确精确运算语义。
| 分值 | 额外限制 |
|---|---|
| 20% | \(k(G+N-1)\le60-b\) |
| 30% | \(k(G+N-1)\le10^7-b\) |
| 50% | 无额外限制 |
资源限制¶
时间 0.5 秒;内存 128 MiB。
时限取标准程序正式数据五次运行的最慢中位数的 2 倍,向上取整到 0.5 秒。