有 n 张卡牌。第 i 张卡牌的位置是 position[i] 。 我们需要把所有卡牌移到同一个位置。在一步中,我们可以将第 i 张卡牌的位置从 position[i] 改变为: position[i] + 2 或 position[i] - 2 ,此时的代价 cost = 0
时间: 2024-04-09 12:29:59 浏览: 141
切换卡.
你好!针对你的问题,我可以给出一个思路。首先,我们观察到在一步中,卡牌的位置可以从 position[i] 改变为 position[i] + 2 或 position[i] - 2,而且代价 cost = 0。
那么,我们可以发现一个规律:所有卡牌移动到同一个位置后,它们的位置之差必然是偶数。因为无论是将一个奇数位置的卡牌移动到偶数位置,还是将一个偶数位置的卡牌移动到奇数位置,位置之差都是偶数。
所以,我们的目标就是将所有卡牌移动到同一个位置,并且使得所有卡牌的位置之差是偶数。为了实现这一目标,我们可以统计所有卡牌位置的奇偶性。
如果卡牌位置的奇偶性统计结果是全奇数或全偶数,那么说明可以将所有卡牌移动到同一个位置,并且使得所有卡牌的位置之差是偶数。此时,代价 cost = 0。
如果卡牌位置的奇偶性统计结果是部分奇数和部分偶数,那么无法将所有卡牌移动到同一个位置,并且使得所有卡牌的位置之差是偶数。此时,代价 cost 不为 0。
综上所述,我们可以通过统计卡牌位置的奇偶性来判断是否能将所有卡牌移动到同一个位置,并且使得所有卡牌的位置之差是偶数。
阅读全文