编程实现:有无限个格子从左到右依次排开,编号依次是 0、1、2、3、4、5、6、7、8、9、10......; 金钱鼠初始在 0号格子,除 0 号格子外,其余每个格子都有金瓜子,从 1 号格子开始,每个格子的金瓜子数量分别是 1、2、3、4、5、1、2、3、4、5......,以此类推。 给定一个整数 n,以及 n 个不同的整数,金钱鼠只能向右跳跃 n 次,每次从 n 个不同整数中选一个作为此次向右跳的格子数,每个整数只能选一次。金钱鼠会收集跳跃到的格子中的金瓜子,请合理选择整数的顺序并计算金钱鼠最多能收集多少颗金瓜子。 例如:n = 3;3 个不同的整数是 1、3、6,金钱鼠按以下顺序选择跳跃的格子数,来收集最多的金瓜子: 第一次跳跃,选择整数 3,向右跳 3 格,收集 3 颗金瓜子; 第二次跳跃,选择整数 1,向右跳 1 格,收集 4 颗金瓜子,目前收集了 7 颗金瓜子; 第三次跳跃,选择整数 6,向右跳 6 格,收集 5 颗金瓜子,目前收集了 12 颗金瓜子; 金钱鼠最多收集 12 颗金瓜子。 输入描述: 第一行输入一个整数 n(1≤n≤9),表示金钱鼠跳跃的次数; 第二行输入 n 个不同的整数(1≤n≤100),表示金钱鼠可以选择跳的格子数,整数之间以一个空格隔开。 输出描述: 输出一个整数,表示金钱鼠最多可以收集的金瓜子数。 样例输入: 3 1 3 6 样例输出: 12




正确答案:n≤9,枚举n个跳跃长度的全排列。从0累加落点x,每次收集((x-1)%5)+1颗金瓜子,取所有排列中的最大总和。
试卷来源:202506(第16届)蓝桥杯Python编程青少组(选拔赛_中/高级)真题