【vijos1286】座位安排
2017-02-24 19:26
239 查看
Description
考场里的座位恰好有n行m列,并且恰好有n*m位考生在这个考场里面考试,也就是说,所有的座位上都有考生。hzy根据学校记载,有k位考生可能作弊,因此hzy不能让他们之中的任何两个人做在相邻的座位上!所谓相邻的座位,即在同一行相邻列或者在同一列的相邻行的座位。hzy准备这样安排座位,首先随机选择一种方案,如果这种方案是合法的,就用这种方案,否则重新选择。你的任务是计算,他得到一个合法方案时,需要的期望选择次数。传送门
Solution
设每次选择合法方案的概率为p=合法方案数/Ckn×m。那么选择的期望次数为:
∑li=1(1−p)i−1⋅i⋅p=p∑li=1(1−p)i−1⋅i (l→∞)
设M=∑li=1(1−p)i−1⋅i,则(1−p)M=∑li=1(1−p)i⋅i。
那么(1−p)M−M=−pM=l⋅(1−p)l−∑li=0(1−p)i
=l⋅(1−p)l−((1−p)l+1−1(1−p)−1)。
因为l→∞,所以−pM=−1p,pM=1p。
当然期望步数也可以不这样算(上面的没懂没有关系)。
我们设期望步数为x,那么我们有方程x=p+(1−p)(1+x),解得x=1p。(显然比上面的式子简单多了,要理解也很容易)
所以最终答案就是Ckn×m/合法方案数。
现在我们考虑怎么求这个方案数。
设fi,j,S表示第i行的作弊学生状态为S,共有j个作弊学生的方案数,转移显然。
一开始把第一行的f初始化一下即可。
这里压缩状态要以小的那个压缩。
相关文章推荐
- Vijos 1286 座位安排(状态压缩DP)
- 【vijos】1286 座位安排(状压dp)
- vijos1286座位安排(状压dp加组合数加gcd)
- vijosP1286座位安排(状压dp)
- vijos - P1286座位安排 (DP状态压缩 + 组合数 + python)
- [vijos1245] 座位的争执
- HDU 4532 湫秋系列故事——安排座位(组合DP)
- HDU 湫秋系列故事——安排座位 组和DP
- 排座位(安排:3个A国人,3个B国人,3个C国人坐成一排。)
- csuoj1971 安排座位
- 去哪儿笔试:座位安排问题
- hdu 4532 湫秋系列故事——安排座位
- HDU - 4532 湫秋系列故事――安排座位 (组合数dp)
- 腾讯笔试——安排座位(动态规划)
- 【HDU 3208】 组合数学+动态规划 湫秋系列故事——安排座位
- 大型宴席如何安排座位?SocialTables帮你轻松搞定
- (CSU - 1971)安排座位
- 洛谷P2071 座位安排
- AOJ614 座位安排
- [组合数 DP] HDU 4532 湫秋系列故事——安排座位