【vijos1286】座位安排

本文探讨了一个有趣的问题:如何计算在给定的考场布局中,防止潜在作弊者相邻坐下的合法座位安排所需的期望选择次数。通过概率论的方法给出了解答,并详细介绍了求解合法方案数的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Description

考场里的座位恰好有n行m列,并且恰好有n*m位考生在这个考场里面考试,也就是说,所有的座位上都有考生。hzy根据学校记载,有k位考生可能作弊,因此hzy不能让他们之中的任何两个人做在相邻的座位上!所谓相邻的座位,即在同一行相邻列或者在同一列的相邻行的座位。hzy准备这样安排座位,首先随机选择一种方案,如果这种方案是合法的,就用这种方案,否则重新选择。你的任务是计算,他得到一个合法方案时,需要的期望选择次数。
传送门

Solution

设每次选择合法方案的概率为 p= 合法方案数 /Ckn×m

那么选择的期望次数为:
li=1(1p)i1ip=pli=1(1p)i1i (l)

M=li=1(1p)i1i ,则 (1p)M=li=1(1p)ii

那么 (1p)MM=pM=l(1p)lli=0(1p)i
=l(1p)l((1p)l+11(1p)1)

因为 l ,所以 pM=1p pM=1p

当然期望步数也可以不这样算(上面的没懂没有关系)。

我们设期望步数为x,那么我们有方程 x=p+(1p)(1+x) ,解得 x=1p 。(显然比上面的式子简单多了,要理解也很容易)

所以最终答案就是 Ckn×m/

现在我们考虑怎么求这个方案数。

fi,j,S 表示第 i 行的作弊学生状态为S,共有 j 个作弊学生的方案数,转移显然。

一开始把第一行的f初始化一下即可。

这里压缩状态要以小的那个压缩。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值