P14107

数列的递推计算

难度 4 级 小学 算法入门 倍增 递推 矩阵
讨论 统计 22通过 59提交 37.3%通过率 旧版界面
时间限制 1 秒 内存限制 128 MB

题目描述

已知一个数列 f(1), f(2), f(3), \dots 满足以下递推关系:

  • f(1) = 1
  • f(2) = 1
  • f(3) = 1
  • 对于 x > 3 ,有: f(x) = f(x-1) + 2 \times f(x-2) + f(x-3)

给定一个正整数 x ,请计算 f(x) 的值。由于答案可能非常大,你只需要输出它对 10^9 + 7 取模后的结果。

输入

输入只有一行,包含一个整数 x ( 4 \le x \le 10^{18} )。

输出

输出一个整数,表示 f(x) \bmod (10^9+7) 的值。

样例

样例 1
输入
4
输出
4
样例 2
输入
7
输出
34
样例 3
输入
100
输出
530643758

提示

样例1解释

f(4) = f(3) + 2 \times f(2) + f(1) = 1 + 2 \times 1 + 1 = 4 。

样例2解释

数列前几项为:1, 1, 1, 4, 7, 16, 34, ...,因此 f(7) = 34 。

数据范围与约定

  • 4 \le x \le 10^{18}
Tab 缩进 · 提交后可在下方查看评测状态
请先登录后再提交