結果
| 問題 | No.2416 vs Slime | 
| コンテスト | |
| ユーザー |  through | 
| 提出日時 | 2023-08-12 13:41:03 | 
| 言語 | C++17 (gcc 13.3.0 + boost 1.87.0) | 
| 結果 | 
                                AC
                                 
                             | 
| 実行時間 | 21 ms / 2,000 ms | 
| コード長 | 671 bytes | 
| コンパイル時間 | 1,987 ms | 
| コンパイル使用メモリ | 199,152 KB | 
| 最終ジャッジ日時 | 2025-02-16 03:23:50 | 
| ジャッジサーバーID (参考情報) | judge4 / judge5 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 1 | 
| other | AC * 37 | 
ソースコード
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using P = pair<ll, ll>;
using T = tuple<ll, ll, ll>;
// #include <atcoder/all>
// using namespace atcoder;
// using mint = modint1000000007;
#define rep(i, n) for(ll i = 0; i < n; i++)
int main() {
    cin.tie(nullptr);
    ios_base::sync_with_stdio(false);
    
    ll h,a; cin >> h >> a;
    map<ll,ll> memo;
    auto dfs = [&](auto self, ll now) -> ll {
        if( now == 0 ) return 0ll;
        if( memo.count(now) ) return memo[now];
        memo[now]++;
        memo[now] += self(self,now/a) * 2;
        return memo[now];
    };
    dfs(dfs,h);
    cout << memo[h] << endl;
    
    return 0;
}
            
            
            
        