結果
問題 | No.23 技の選択 |
ユーザー | EmKjp |
提出日時 | 2015-02-21 22:12:51 |
言語 | C++11 (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 2 ms / 5,000 ms |
コード長 | 1,065 bytes |
コンパイル時間 | 715 ms |
コンパイル使用メモリ | 82,880 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-06-28 16:46:24 |
合計ジャッジ時間 | 1,650 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 33 |
ソースコード
#include<iostream> #include<sstream> #include<cstdio> #include<cstring> #include<algorithm> #include<string> #include<vector> #include<cmath> #include<set> #include<map> #include<stack> #include<queue> #include<numeric> #include<functional> #include<complex> using namespace std; #define BET(a,b,c) ((a)<=(b)&&(b)<(c)) #define FOR(i,n) for(int i=0,i##_end=(int(n));i<i##_end;i++) #define SZ(x) (int)(x.size()) #define ALL(x) (x).begin(),(x).end() #define MP make_pair #define FOR_EACH(it,v) for(__typeof(v.begin()) it=v.begin(),it_end=v.end() ; it != it_end ; it++) typedef vector<int> VI; typedef vector<VI> VVI; int main() { int H,A,D; cin>>H>>A>>D; vector<double> dp(H+1); dp[0] = 0 ; for(int i=1;i<=H;i++){ dp[i] = 1; if(i - A >= 0) dp[i] = dp[i - A] + 1; double waza = 0; if(i - D >= 0) waza = dp[i - D]; // v = waza * 2 / 3 + v / 3 + 1 // 2 * v = 2 * waza + 3 // v = waza + 3 / 2 dp[i] = min(dp[i], waza + 1.5); } printf("%.10f\n", dp[H]); return 0; }