結果
問題 |
No.2829 GCD Divination
|
ユーザー |
![]() |
提出日時 | 2024-12-04 02:54:32 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
TLE
|
実行時間 | - |
コード長 | 555 bytes |
コンパイル時間 | 1,782 ms |
コンパイル使用メモリ | 168,592 KB |
実行使用メモリ | 477,188 KB |
最終ジャッジ日時 | 2024-12-04 02:56:10 |
合計ジャッジ時間 | 96,858 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 4 TLE * 31 |
ソースコード
#include<bits/stdc++.h> using namespace std; int gcd(int a, int b) { while (b != 0) { int temp = b; b = a % b; a = temp; } return a; } double fill_dp(int N,vector<double> dp){ // N番目をうめる if(dp[N] >= 0){ return dp[N]; } if(N == 1){ dp[1] = 0.0; return dp[1]; } double sum_e = 0.0; for(int k=1;k<N;k++){ sum_e += fill_dp(gcd(N,k),dp); } dp[N] = (sum_e+(double)N)/((double)(N-1)); return dp[N]; } int main(){ int N; cin >> N; vector<double> dp(N+1,-1); cout << fill_dp(N,dp) << endl; }