結果
問題 | No.554 recurrence formula |
ユーザー | rapurasu |
提出日時 | 2017-08-11 22:39:39 |
言語 | C++11 (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 5 ms / 2,000 ms |
コード長 | 802 bytes |
コンパイル時間 | 1,174 ms |
コンパイル使用メモリ | 158,120 KB |
実行使用メモリ | 6,824 KB |
最終ジャッジ日時 | 2024-10-12 21:21:32 |
合計ジャッジ時間 | 1,865 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 21 |
ソースコード
#include<bits/stdc++.h> using namespace std; #define FOR(i,a,b) for (int i=(a);i<(b);i++) #define RFOR(i,a,b) for (int i=(b)-1;i>=(a);i--) #define REP(i,n) for (int i=0;i<(n);i++) #define RREP(i,n) for (int i=(n)-1;i>=0;i--) typedef long long LL; LL MOD=1e9+7; int n; LL a[100001]; LL odd=1; LL even=0; /*LL f(int n){ if(a[n]!=-1)return a[n]; if(n==0)return 0; if(n==1)return 1; LL ans=0; if(n%2==0){ for(int i=0;i*2+1<n;i++){ ans+= } }else{ } a[i]=n*ans; return a[i]; }*/ int main(){ cin>>n; a[1]=1;a[0]=0; for(int i=2;i<n+1;i++){ if(i%2==0){ a[i]=(odd*i)%MOD; even=(even+a[i])%MOD; }else{ a[i]=(even*i%MOD); odd=(odd+a[i])%MOD; } } cout<<a[n]<<endl; return(0); }