結果
問題 |
No.1581 Multiple Sequence
|
ユーザー |
|
提出日時 | 2021-07-03 17:52:35 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 111 ms / 2,000 ms |
コード長 | 516 bytes |
コンパイル時間 | 692 ms |
コンパイル使用メモリ | 65,296 KB |
実行使用メモリ | 20,096 KB |
最終ジャッジ日時 | 2024-06-30 10:02:30 |
合計ジャッジ時間 | 2,707 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 21 |
ソースコード
#include<iostream> #include<vector> #include<list> typedef long long ll; using namespace std; const ll p = (ll) 1e9+7; int main() { ll M; cin >> M; vector<vector<ll>> ds(M+1,vector<ll>()); for (int d=2;d<=M;++d) { for (int i=1;i*d<=M;++i) { ds[i*d].push_back(d); } } vector<ll> dp(M+1); vector<ll> s(M+1); s[0]=1; dp[0]=1; for (int i=1;i<=M;++i) { for (ll d : ds[i]) { dp[i]+=s[i/d-1]; dp[i]%=p; } s[i]=(s[i-1]+dp[i])%p; } cout << s[M] << endl; }