SPOJ https://www.spoj.pl/problems/DIEHARD/の練習問題を解こうとしていました。しかし、私の貪欲なアプローチは間違った答えをもたらし、再帰は最悪の場合には遅すぎました.誰かがこの問題にアプローチする方法を教えてもらえますか? 私を正しい方向に向けてくれる人を探しています。
ゲームはシンプルです。最初は「H」のヘルスと「A」のアーマーがあります。いつでも、火、水、空気の 3 つの場所のどこにでも住むことができます。単位時間ごとに、住む場所を変えなければなりません。たとえば、現在火の中で生活している場合、水または空気に足を踏み入れることができます。
- 空中に足を踏み入れると、ヘルスが 3 増加し、アーマーが 2 増加します。
- 水に足を踏み入れると、ヘルスが 5 減少し、アーマーが 10 減少し
ます 火に足を踏み入れると、ヘルスが 20 減少し、アーマーが 5 増加しますヘルスまたはアーマーが 0 以下になると、即死します。
あなたが生き残ることができる最大の時間を見つけてください。
入力:
最初の行は、テスト ケースの数である整数 t で構成されます。各テスト ケースには、初期ヘルス H と初期アーマー A を表す 2 つの正の整数があります。
出力:
テストケースごとに、生き残ることができる最大時間を見つけてください。