問題一覧 > 通常問題

No.980 Fibonacci Convolution Hard

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 94
作問者 : keymoon / テスター : tempura_pp
10 ProblemId : 3211 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2020-09-17 18:18:43

問題文

数列 aa1=0,a2=1,an=pan1+an2(3n) で定義します。また、Q 個のクエリが与えられます。
各クエリ qi について、以下の問題に回答してください。


  • s+t=qi,1s,t なる全ての整数 s,t について、asat の合計を 1000000007 で割った余りを答えてください。

入力

p
Q
q1

qQ
  • 1p109
  • 1Q2105
  • 2qi2106
  • 入力は全て整数

出力

Q 行出力して下さい。i 行目には、s+t=qi,1s,t なる全ての整数 s,t について、asat の合計を 1000000007 で割った余りを出力してください。

サンプル

サンプル1
入力
3
3
4
5
6
出力
1
6
29

数列 a0 1 3 10 33 109 と続きます。
クエリ1で求めるべき答えは a1a3+a2a2+a3a1 なので、0+1+0=1
クエリ2で求めるべき答えは a1a4+a2a3+a3a2+a4a1 なので、0+3+3+0=6
クエリ3で求めるべき答えは a1a5+a2a4+a3a3+a4a2+a5a1 なので、0+10+9+10+0=29 となります。

サンプル2
入力
3141592
6
535
8979
3238
4626
4338
3279
出力
249873862
219934200
58952263
243315871
417706621
611158423

提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。