AT_ttpc2019_j.動的無計画法

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

考虑以下数列 $ a\ =\ (a_0,\ a_1,\ \ldots\ ,\ a_N) $。

$ \begin{aligned}\ a_i\ =\ \begin{cases}\ x\ &\ (\ i\ =\ 0\ )\ \ y\ &\ (\ i\ =\ 1\ )\ \ a_{i-1}\ +\ a_{i-2}\ &\ (\ \text{otherwise}\ )\ \end{cases}\ \end{aligned} $

Alice决定使用动态规划来求解 $ a_N $。具体做法如下:

  1. 准备数组 $ a $
  2. 初始化 $ a_{0}\ =\ x,\ a_{1}\ =\ y,\ a_{i}\ =\ 0\ (i\ >\ 1) $
  3. 对于 $ i\ =\ 2,\ 3,\ \ldots\ ,\ N $,将 $ a_{i} $ 替换为 $ a_{i-1}+a_{i-2} $

按照上述步骤中的第3步,逐渐以较小的 $ i $ 进行更新,就能得到正确的 $ a_{N} $ 值。然而,Alice没有计划,随意更新了 $ i $ 的顺序。此时,更新的顺序有 $ (N-1)! $ 种可能,要求出每种顺序下最终写入 $ a_{N} $ 的值,并计算它们的总和除以 $ 10^9+7 $ 的余数。

输入格式

输入以以下格式从标准输入中给出。

$ x $ $ y $ $ N $

输出格式

输出在所有更新顺序下最终 $ a_{N} $ 的值的总和除以 $ 10^9+7 $ 的余数。

样例#1

样例输入 #1

0 1 3

样例输出 #1

3

样例 #2

样例输入 #2

0 0 5

样例输出 #2

0

样例 #3

样例输入 #3

1 1 6

样例输出 #3

117

样例 #4

样例输入 #4

12345 67890 1000000

示例输出 #4

418969939

输入输出样例

  • 输入#1

    0 1 3

    输出#1

    3
  • 输入#2

    0 0 5

    输出#2

    0
  • 输入#3

    1 1 6

    输出#3

    117
  • 输入#4

    12345 67890 1000000

    输出#4

    418969939

说明/提示

  • 输入为整数
  • $ 0\ \le\ x,\ y\ \le\ 10^9 $
  • $ 2\ \le\ N\ \le\ 10^6 $

样例解释 1

当按照 $ i $ 的顺序更新为 $ 2,\ 3 $ 时,$ a_{N} $ 的值为 $ 2 $;当按照 $ i $ 的顺序更新为 $ 3,\ 2 $ 时,$ a_{N} $ 的值为 $ 1 $,总和为 $ 3 $。

样例解释 2

无论操作顺序如何,最终 $ a_{N} $ 写入的值始终为 $ 0 $。

输入解题思路,AI测评打分。不知道怎么写?

首页