結果
問題 |
No.23 技の選択
|
ユーザー |
![]() |
提出日時 | 2015-04-07 12:20:30 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 3 ms / 5,000 ms |
コード長 | 707 bytes |
コンパイル時間 | 1,278 ms |
コンパイル使用メモリ | 157,956 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-06-28 16:46:40 |
合計ジャッジ時間 | 2,096 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 33 |
ソースコード
#include <bits/stdc++.h> #define mp make_pair #define mt make_tuple #define pb push_back #define rep(i, n) for (int i = 0; i < (n); i++) using namespace std; typedef long long ll; typedef unsigned long long ull; typedef pair<int, int> pii; typedef pair<long, long> pll; const int INF = 1 << 29; const double EPS = 1e-9; const int MOD = 100000007; const int dx[] = {1, 0, -1, 0}, dy[] = {0, -1, 0, 1}; int H,A,D; double dp[100100]; double memo(int H){ if (H <= 0)return 0; if (dp[H] >= 0){ return dp[H]; } dp[H] = min(1 + memo(H - A), 1.5 + memo(H - D)); return dp[H]; } int main() { cin >> H >> A >> D; memset(dp, -1, sizeof(dp)); memo(H); cout << dp[H] << endl; return 0; }