結果
問題 | No.978 Fibonacci Convolution Easy |
ユーザー | soto800 |
提出日時 | 2020-01-31 22:14:48 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 33 ms / 2,000 ms |
コード長 | 595 bytes |
コンパイル時間 | 1,530 ms |
コンパイル使用メモリ | 166,020 KB |
実行使用メモリ | 34,688 KB |
最終ジャッジ日時 | 2024-09-18 20:59:09 |
合計ジャッジ時間 | 2,942 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 21 |
ソースコード
#include <bits/stdc++.h> using namespace std; #define lli long long int #define REP(i,s,n) for(int i=s;i<n;i++) #define MOD 1000000007 #define NUM 2520 #define INF (1LL<<50) #define DEBUG 0 #define mp(a,b) make_pair(a,b) #define SORT(V) sort(V.begin(),V.end()) #define PI (3.141592653589794) lli a[2001000]; lli sum[2001000]; signed main(){ lli n,p; cin>>n>>p; a[0]=0; sum[0]=0; a[1]=1; sum[1]=1; REP(i,2,2001000){ a[i]=(p*a[i-1]+a[i-2])%MOD; sum[i] = (sum[i-1]+a[i])%MOD; } lli ans=0; REP(i,0,n){ ans += (a[i]*sum[i])%MOD; ans%=MOD; } cout<<ans<<endl; return 0; }