题目
题目描述
为了拯救世界,小 a 和 uim 决定召唤出 kkksc03 大神和 lzn 大神。根据古籍记载,召唤出任何一位大神,都需要使用金木水火土五种五行神石来摆一个特定的大阵。而在古籍中,记载是这样的:
kkksc03 大神召唤方法:
金神石的块数必须是 66 的倍数。
木神石最多用 99 块。
水神石最多用 55 块。
火神石的块数必须是 44 的倍数。
土神石最多用 77 块。
lzn 大神召唤方法:
金神石的块数必须是 22 的倍数。
木神石最多用 11 块。
水神石的块数必须是 88 的倍数。
火神石的块数必须是 1010 的倍数。
土神石最多用 33 块。
现在是公元 1999 年 12 月 31 日,小 a 和 uim 从 00:00:00 开始找,一直找到 23:00:00,终于,还是没找到神石。不过,他们在回到家后在自家地窖里发现了一些奇怪的东西,一查古籍,哎呦妈呀,怎么不早点来呢?这里有一些混沌之石,可以通过敲击而衰变成五行神石。于是,他们拼命地敲,终于敲出了n块神石,在 23:59:59 完成了两座大阵。然而,kkksc03 大神和 lzn 大神确实出现了,但是由于能量不够,无法发挥神力。只有把所有用 nn 块神石可能摆出的大阵都摆出来,才能给他们充满能量。这下小 a 和 uim 傻了眼了,赶快联系上了你,让你帮忙算一下,一共有多少种大阵。
输入格式
输入一个正整数 nn。
输出格式
输出用 nn 块混沌之石能摆出的大阵的种数。
输入输出样例
输入 #1 复制
2
输出 #1 复制
15
说明/提示
数据范围:
10^{100000}\leq n\lt 10^{100001}10
100000
≤n<10
100001
提示
由于现在已经是 23:59:59,所以你只有 0.5\texttt s0.5s 时间。(小 a 与 uim 需要 0.5\texttt s0.5s 排出所有阵法)
思路
生成函数模板题
kkksc03:
金:
1
+
x
6
+
x
12
+
⋯
=
1
1
−
x
6
1+x^6+x^{12}+\dots=\frac{1}{1-x^6}
1+x6+x12+⋯=1−x61
木:
1
+
x
+
x
2
+
⋯
+
x
9
=
1
−
x
10
1
−
x
1+x+x^2+\dots+x^9=\frac{1-x^{10}}{1-x}
1+x+x2+⋯+x9=1−x1−x10
水:
1
+
x
+
x
2
+
⋯
+
x
5
=
1
−
x
6
1
−
x
1+x+x^2+\dots+x^5=\frac{1-x^6}{1-x}
1+x+x2+⋯+x5=1−x1−x6
火:
1
+
x
4
+
x
8
+
⋯
=
1
1
−
x
4
1+x^4+x^8+\dots=\frac{1}{1-x^4}
1+x4+x8+⋯=1−x41
土:
1
+
x
+
x
2
+
⋯
+
x
7
=
1
−
x
8
1
−
x
1+x+x^2+\dots+x^7=\frac{1-x^8}{1-x}
1+x+x2+⋯+x7=1−x1−x8
lzn:
金:
1
+
x
2
+
x
4
+
⋯
=
1
1
−
x
2
1+x^2+x^4+\dots=\frac{1}{1-x^2}
1+x2+x4+⋯=1−x21
木:
1
+
x
=
1
−
x
2
1
−
x
1+x=\frac{1-x^2}{1-x}
1+x=1−x1−x2
水:
1
+
x
8
+
x
16
+
⋯
=
1
1
−
x
8
1+x^8+x^{16}+\dots=\frac{1}{1-x^8}
1+x8+x16+⋯=1−x81
火:
1
+
x
10
+
x
20
+
⋯
=
1
1
−
x
10
1+x^{10}+x^{20}+\dots=\frac{1}{1-x^{10}}
1+x10+x20+⋯=1−x101
土:
1
+
x
+
x
2
+
x
3
=
1
−
x
4
1
−
x
1+x+x^2+x^3=\frac{1-x^4}{1-x}
1+x+x2+x3=1−x1−x4
用c++要打NTT,所以我选择ruby
代码
n = gets.to_i
print (n + 1) * (n + 2) * (n + 3) * (n + 4) / 24