题库首页 › 信息素养大赛(Python) › 题目 13595

卡牌游戏 题目描述: 有a张卡牌。第i张卡牌的位置是position[i] 我们需要把所有卡牌移到同一个位置,在一步中,我们可以将第i张卡牌的位T从position[i]改变为: position[i]+ 2 或 position[i]-2.此时的代价 cost = 0 position[i]+ 1 或 position[i]-1,此时的代价 conl-1 现给出所有卡牌的位置,请你编程输出将所有一牌移动到同一位置上所需要的最小代价。 输入描述: 输入一行正整数.每个数之间用空格间隔。 输出描述: 输出将所有卡牌移动到同一位置上所需要的最小代价, 样例1: 输入: 1 2 3 输出: 1

正确答案:参考程序(Python):a=list(map(int,input().split()));ev=sum(x%2==0 for x in a);od=len(a)-ev;print(ev%2+od//2 if od%2==0 else min(...)。实际:偶移2代价0,奇移1代价1。最优:把奇偶归两类。答案=min(偶侧需奇数, 奇侧需偶数)。给 min(ev%2, od%2)的代价+奇偶搬运。样例1 2 3→1。核心:奇偶移动最小代价。

试卷来源:2023全国青少年信息素养大赛Python编程挑战赛(复赛_海南赛区)真题

本卷相关题目

在线做题 同科目题库