题库首页 › 蓝桥杯大赛(Python) › 题目 8784

有 N 张扑克牌叠放在桌上,A 和 B 两人轮流抽牌,每次只能从最上面或最下面抽一张牌,当最后一张牌被抽完时,比较 A 和 B 两人扑克牌的点数总和,点数总和大的一方胜利,点数相同时双方均不算胜利。A 先抽牌,请统计一共有多少种不同的抽牌情况,A 有多少种不同的获胜情况。 例如:N = 3,有 3 张扑克牌,从上往下的点数依次为 3、2、1。A 先抽牌,所有不同的抽取情况有: 第一种:A 抽 3,B 抽 1,A 再抽 2,A 的点数总和为 5,B 的点数总和为 1;第二种:A 抽 3,B 抽 2,A 再抽 1,A 的点数总和为 4,B 的点数总和为 2;第三种:A 抽 1,B 抽 3,A 再抽 2,A 的点数总和为 3,B 的点数总和为 3;第四种:A 抽 1,B 抽 2,A 再抽 3,A 的点数总和为 4,B 的点数总和为 2;一共有 4 种不同的抽牌情况,A 有 3 种不同的获胜情况。 输入描述: 第一行输入一个整数 N(2≤N≤20),表示扑克牌的张数 第二行输入 N 个整数(1≤整数≤13),同一个整数不能出现超过 4 次,表示从上往下每张扑克牌的点数, 整数之间以一个空格隔开 输出描述: 第一行输出一个整数,表示一共有多少种不同的抽牌情况第二行输出一个整数,表示 A 有多少种不同的获胜情况 样例输入: 3 3 2 1 样例输出: 4 3

正确答案:参考程序(Python):两端抽牌。区间DP统计A获胜方案数。dp记录当前区间剩余牌时A相对B的分数差和方案数,A先手每轮取两端。样例3→共4种A赢3。核心:区间DP两端抽牌。

试卷来源:202312(第15届)蓝桥杯Python编程青少组(选拔赛)真题

本卷相关题目

在线做题 同科目题库