[アルゴリズム](イコール)アリ戦士-パイソン
4273 ワード
教材:これはPythonでコードテストを行います
CHAPTER 8ダイナミックプログラミング
実戦問題8-3アリ戦士220 p
アリの戦士
質問する
アリ戦士は不足した食糧を補うためにバッタ村の穀倉を襲撃する準備をしている.バッタ村にはいくつかの穀倉があり、穀倉は直線である.各穀倉には一定数の食糧が貯蔵されており、アリ戦士は選択的に穀倉を略奪し、食糧を奪う.この時、バッタ偵察兵たちは一直線上に存在する穀倉の中で、隣接する穀倉が攻撃を受けると、すぐに発見される.そのため、アリ戦士は偵察兵に発見されないように、食糧倉庫を略奪し、少なくとも1つ以上の食糧倉庫を略奪しなければならない.例えば、4つの穀倉があると仮定すると、以下のようになります.
{1, 3, 1, 5}
この時、アリ戦士は2番目の穀倉と4番目の穀倉を選んだ時、最大8つの食糧を奪うことができる.アリ戦士は食糧倉庫がこのように直線的な状況でできるだけ多くの食糧を得ることを望んでいる.
アリ戦士のためにプログラムを作って、N個の穀倉に関する情報を得たとき、得られる食糧の最高価格.
入力行目は食糧倉庫の個数Nを与えた.(3<=N<=100) の2行目は空白に分けられ、各穀倉に貯蔵された食糧の数はKである.(0<=K<=1,000) しゅつりょく行目にアリ戦士が得ることができる食糧の最高価格を輸出した. 入力例
に近づく
30分も悩んだあげく、全然分からなかった.でも問題は答えを見てほとんど写したけどまだ分からない.どうして後ろは気にしなくていいの?どうして目の前の1人と2人の距離の子供だけを考えればいいの...どうして1つの部屋の子供は彼女の1つの部屋から離れた子供だけを考えて、彼女の2つの部屋から離れた子供を考えないのですか...ああ、本当に難しいですか.难しい、难しい!!!!!!!!!!!!!!!!!!!
送信解答時間:50分/30分
CHAPTER 8ダイナミックプログラミング
実戦問題8-3アリ戦士220 p
アリの戦士
質問する
アリ戦士は不足した食糧を補うためにバッタ村の穀倉を襲撃する準備をしている.バッタ村にはいくつかの穀倉があり、穀倉は直線である.各穀倉には一定数の食糧が貯蔵されており、アリ戦士は選択的に穀倉を略奪し、食糧を奪う.この時、バッタ偵察兵たちは一直線上に存在する穀倉の中で、隣接する穀倉が攻撃を受けると、すぐに発見される.そのため、アリ戦士は偵察兵に発見されないように、食糧倉庫を略奪し、少なくとも1つ以上の食糧倉庫を略奪しなければならない.例えば、4つの穀倉があると仮定すると、以下のようになります.
{1, 3, 1, 5}
この時、アリ戦士は2番目の穀倉と4番目の穀倉を選んだ時、最大8つの食糧を奪うことができる.アリ戦士は食糧倉庫がこのように直線的な状況でできるだけ多くの食糧を得ることを望んでいる.
アリ戦士のためにプログラムを作って、N個の穀倉に関する情報を得たとき、得られる食糧の最高価格.
入力
4
1 3 1 5
出力例8
に答えるに近づく
30分も悩んだあげく、全然分からなかった.でも問題は答えを見てほとんど写したけどまだ分からない.どうして後ろは気にしなくていいの?どうして目の前の1人と2人の距離の子供だけを考えればいいの...どうして1つの部屋の子供は彼女の1つの部屋から離れた子供だけを考えて、彼女の2つの部屋から離れた子供を考えないのですか...ああ、本当に難しいですか.难しい、难しい!!!!!!!!!!!!!!!!!!!
送信
n = int(input())
arr = list(map(int,input().split()))
d=[0]*100
d[0]=arr[0]
d[1]=max(arr[0],arr[1])
for i in range(2,n):
d[i]=max(d[i-1],d[i-2]+arr[i])
print(d[n-1])
結果Reference
この問題について([アルゴリズム](イコール)アリ戦士-パイソン), 我々は、より多くの情報をここで見つけました https://velog.io/@suzieep/Algorithm-이코테-개미-전사-파이썬テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol