首页 > 试题广场 >

抽牌

[编程题]抽牌
  • 热度指数:915 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
桌上放了一堆牌,牌从上到下由 1 到 n 编号,每张牌上写有一个数字,第 i 张牌上的数字为 ai,小明和小方在玩轮流取牌的游戏,每次每个人只能取一张牌,小明先取牌。
取牌规则如下,当一个人取牌时,他只能取当前牌堆中的最上面的一张或者最下面一张。小明和小方都采用随机取牌的策略,小明每次以概率 p 取最上面一张牌,以概率 1-p 取最下面一张牌;小方每次以概率 q 取最上面一张牌,以概率 1-q 取最下面一张牌。
最后两人的得分为他们各自取到排上的数字之和。问小明得分的数学期望。

数据范围: , 


输入描述:
第一行输入三个整数 n , P , Q。小明取最上面一张牌的概率 p=P/100 ,小方取最上面一张牌的概率 q=Q/100。
接下来一行 n 个数,每张牌上的数字。


输出描述:
输出答案,四舍五入保留三位小数。
示例1

输入

2 10 90
1 2

输出

1.900
示例2

输入

5 10 20
1 3 4 5 13

输出

18.038
头像 蒙奇D_路飞
发表于 2025-03-14 13:09:37
import sys n, pp, qq = map(int, sys.stdin.readline().split()) a = list(map(int, sys.stdin.readline().split())) dp = [[[0] * 1000 for _ in range(1000) 展开全文
头像 17c89
发表于 2024-01-26 12:41:11
import java.util.Scanner; public class Main { public static void main(String[] args){ Scanner in = new Scanner(System.in); while 展开全文
头像 bandiaoz
发表于 2024-12-29 01:33:21
解题思路 这是一个动态规划问题,需要计算期望值。游戏规则如下: 张牌从上到下编号 到 ,每张牌上有一个数字 两人轮流取牌,每次只能取最上面或最下面的牌 小明先手,以概率 取上面的牌,概率 取下面的牌 小方后手,以概率 取上面的牌,概率 取下面的牌 求小明获得的数字之和的期望值 解决 展开全文

问题信息

难度:
6条回答 1913浏览

热门推荐

通过挑战的用户

查看代码
抽牌