結果
問題 |
No.1331 Moving Penguin
|
ユーザー |
![]() |
提出日時 | 2020-10-15 02:06:49 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
TLE
|
実行時間 | - |
コード長 | 786 bytes |
コンパイル時間 | 1,817 ms |
コンパイル使用メモリ | 170,164 KB |
実行使用メモリ | 10,496 KB |
最終ジャッジ日時 | 2024-10-11 13:31:32 |
合計ジャッジ時間 | 8,604 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 8 TLE * 1 -- * 40 |
ソースコード
#include<bits/stdc++.h> #pragma GCC target("avx") #pragma GCC target("avx2") #pragma GCC optimize("O3") #pragma GCC optimize("unroll-loops") #pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native") using std::cin; using std::cout; #define endl "\n" using std::vector; const int mod=1e9+7; int main(){ std::ios::sync_with_stdio(false); std::cin.tie(nullptr); constexpr int max=1e5; int N; cin>>N; vector<int> dp(N); dp[0]=1; vector<int> A(N); for(int i=0;i<N;i++){ cin>>A[i]; if(i>0&&A[i-1]>1){ dp[i]+=dp[i-1]; if(dp[i]>=mod) dp[i]-=mod; } for(int j=i+A[i];j<N;j+=A[i]){ dp[j]+=dp[i]; if(dp[j]>=mod) dp[j]-=mod; } } cout<<dp[N-1]<<endl; }