結果
| 問題 |
No.793 うし数列 2
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2024-04-21 20:47:06 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 54 ms / 2,000 ms |
| コード長 | 1,268 bytes |
| コンパイル時間 | 259 ms |
| コンパイル使用メモリ | 82,176 KB |
| 実行使用メモリ | 55,808 KB |
| 最終ジャッジ日時 | 2024-10-13 19:11:25 |
| 合計ジャッジ時間 | 2,254 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 21 |
ソースコード
from collections import *
from itertools import *
from functools import *
from heapq import *
import sys,math
input = sys.stdin.readline
N = int(input())
mod = 10**9 + 7
def bostan_mori(C,A,N,mod):
#A = [a1,a2,a3,,,,](初項)
#An = -C[1]*A_(n-1) - C[2]*A_(n-2)...
N -= 1
n = len(A)
P = [0]*n
Q = C
for i in range(n):
ai = A[i]
for j in range(n-i):
cj = C[j]
P[i+j] = (P[i+j] + ai*cj)%mod
while N:
U = [0]*(2*n)
for i in range(n):
pi = P[i]
for j in range(n):
qj = Q[j]
if j%2:
qj *= -1
U[i+j] = (U[i+j] + pi*qj)%mod
if N%2==0:
P = [p for i,p in enumerate(U) if i%2==0]
else:
P = [p for i,p in enumerate(U) if i%2==1]
Q2 = [0]*(2*n)
for i in range(n):
qi = Q[i]
for j in range(n):
qj = Q[j]
if j%2:
qj *= -1
Q2[i+j] = (Q2[i+j] + qi*qj)%mod
Q = [q for i,q in enumerate(Q2) if i%2==0]
N //= 2
return P[0]
if N==1:
print(13)
exit()
inv3 = pow(3,mod-2,mod)
ans = (13+inv3)*pow(10,N-1,mod)-inv3
print(ans%mod)