我正在解决以下问题并采用蛮力方法,但无法提出一个好的解决方案。问题如下:
有2*N张卡。您和您的对手将它们分开(给您 N 张牌,给他们 N 张牌)。您确切地知道他们有什么牌以及他们将按什么顺序打牌。
游戏规则如下:在前 N/2 轮中,拥有最高牌的人获胜,在最后 N/2 轮中,拥有最低牌的人获胜。
鉴于这些规则和你的对手在那里打牌的顺序,你可以获得的最大胜利数量是多少。
例子:
你有牌:2、5、6、7。你的对手有牌:1、8、4、3,并按顺序打出。
你可以得到的最高分是 2,因为你打 7 对 1,输掉第 2 和第 3 轮,然后在最后一轮打 2 赢。
我的想法:把你的牌分成两堆,你的大号和小号。然后找出最佳匹配。
伪代码/算法的想法将不胜感激。
编辑:总共有 N 轮。前 N/2 轮:较高的牌获胜。最后 N/2 轮:较低的牌获胜。N 必须是偶数。