私は次の問題で遊んでいて、力ずくのアプローチをとっていましたが、良い解決策を思いつくことができませんでした。問題は次のとおりです。
2*N 枚のカードがあります。あなたとあなたの対戦相手はそれらを分割します(あなたにN枚のカード、それらにN枚)。彼らが持っているカードと、それらをプレイする順番を正確に知っています。
ゲームのルールは次のとおりです。最初の N/2 ラウンドでは、最も高いカードを持つ人が勝ち、最後の N/2 ラウンドでは、最も低いカードを持つ人が勝ちます。
これらのルールと、対戦相手がカードをプレイする順序を考えると、獲得できる勝利の最大額はいくらか.
例:
あなたはカードを持っています: 2, 5, 6, 7. 対戦相手はカードを持っています: 1, 8, 4, 3 そして、それらを順番にプレイします.
7 対 1 でプレイし、2 ラウンド目と 3 ラウンド目で負け、最終ラウンドで 2 をプレイして勝つため、獲得できる最大スコアは 2 です。
私の考え: カードを 2 つの山に分けます。数字の大きい方と小さい方です。次に、最適なマッチングを見つけます。
疑似コード/アルゴリズムのアイデアは大歓迎です。
編集: 合計 N ラウンドがあります。最初の N/2 ラウンド: 高いカードが勝ちます。最後の N/2 ラウンド: 下のカードが勝ちます。N は偶数でなければなりません。