yukicoder-214

从 Trac 迁移的文章

这是从旧校内 Wiki 迁移的文章,可能存在一些样式问题,您可以向 memset0 反馈。

原文章内容如下:

{{{
#!html
<script type="text/x-mathjax-config">MathJax.Hub.Config({tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]}});</script>
<script type="text/javascript" async src="http://10.71.10.90/sfiction/tool/MathJax/MathJax-master/MathJax.js?config=TeX-MML-AM_CHTML"></script>
<style>
.input, pre {
    display: block;
    padding: 9.5px;
    margin: 0 0 10px;
    font-size: 13px;
    line-height: 1.42857143;
    color: #333;
    word-break: break-all;
    word-wrap: break-word;
    background-color: #f5f5f5;
    border: 1px solid #ccc;
    border-radius: 4px;
}
</style>
}}}

== [https://yukicoder.me/problems/no/214 No.214 素数サイコロと合成数サイコロ (3-Medium)] ==

=== Description ===

{{{
#!html
<p>有两种骰子,第一种6个面写着$2,3,5,7,11,13$,第二种6个面写着$4, 6, 8, 9, 10,12$。你现在有$0$分,最终要获得$N$分。每次,你可以同时掷$P$个第一种骰子和$C$个第二种骰子。令掷出来的和是$x$,当前你的分数是$k$,那么你的分数会变成$\min(x + k, N)$。</p>

<p>假设同一种的每个骰子都是一样的,你无法区分他们。问有多少种不同的局面能使你第一次获得$N$分。输出方案数$\bmod (10^9 + 7)$即可。</p>

<p>两种局面不同,当且仅当它们掷骰子的次数不同,或者存在某次掷出来的$P+C$个骰子不一样。</p>
}}}

=== Input ===

{{{
#!html
<p class="input">$N\ P\ C$</p>
<p>
$1 \leq N \leq 1000000000000000000 = 10^{18}$<br>
$0 \leq P \leq 50$<br>
$0 \leq C \leq 50$<br>
$P + C \ge 1$
</p>
}}}

=== Output ===

输出方案数$\bmod 1000000007$。

=== Sample ===

==== Sample 1 ====
输入
{{{
#!html
<pre>
1 1 1
</pre>
}}}
输出
{{{
#!html
<pre>
36
</pre>
}}}

==== Sample 2 ====
输入
{{{
#!html
<pre>
1 2 0
</pre>
}}}
输出
{{{
#!html
<pre>
21
</pre>
}}}

==== Sample 3 ====
输入
{{{
#!html
<pre>
5 2 0
</pre>
}}}
输出
{{{
#!html
<pre>
41
</pre>
}}}

==== Sample 4 ====
输入
{{{
#!html
<pre>
6 2 0
</pre>
}}}
输出
{{{
#!html
<pre>
61
</pre>
}}}

==== Sample 5 ====
输入
{{{
#!html
<pre>
1 10 10
</pre>
}}}
输出
{{{
#!html
<pre>
9018009
</pre>
}}}

==== Sample 6 ====
输入
{{{
#!html
<pre>
100000 8 12
</pre>
}}}
输出
{{{
#!html
<pre>
144097395
</pre>
}}}

No.214 素数サイコロと合成数サイコロ (3-Medium)

Description

有两种骰子,第一种6个面写着$2,3,5,7,11,13$,第二种6个面写着$4, 6, 8, 9, 10,12$。你现在有$0$分,最终要获得$N$分。每次,你可以同时掷$P$个第一种骰子和$C$个第二种骰子。令掷出来的和是$x$,当前你的分数是$k$,那么你的分数会变成$\min(x + k, N)$。

假设同一种的每个骰子都是一样的,你无法区分他们。问有多少种不同的局面能使你第一次获得$N$分。输出方案数$\bmod (10^9 + 7)$即可。

两种局面不同,当且仅当它们掷骰子的次数不同,或者存在某次掷出来的$P+C$个骰子不一样。

Input

$N\ P\ C$

$1 \leq N \leq 1000000000000000000 = 10^{18}$
$0 \leq P \leq 50$
$0 \leq C \leq 50$
$P + C \ge 1$

Output

输出方案数$\bmod 1000000007$。

Sample

Sample 1

输入

1 1 1

输出

36
Sample 2

输入

1 2 0

输出

21
Sample 3

输入

5 2 0

输出

41
Sample 4

输入

6 2 0

输出

61
Sample 5

输入

1 10 10

输出

9018009
Sample 6

输入

100000 8 12

输出

144097395