SRM144DIV1 Lottery

题意:

假设彩票选号的规则对应4个参数:int n, int C, bool sorted, bool unique,填号规则如下:

在n个位置上填数,每个数不超过C,如果sorted为true,要求这n个数非降序排列,如果unique为true,要求这n个数不能有重复的

现在给出k张彩票的填号规则,将这k张彩票获胜机率从大到小排序。

0<=n<=8,  10<=C<=100, 0<=k<=50

 

思路:计算出每种规则下每张彩票的填号可能的数目,从小到大排序,计算公式如下表

 truefalse
trueC(C, b)A(C, n)
false?C^b

第一行表示sorted,第一列表示unique。难点在于计算sorted==true&&unique==false的情况,考虑递推:

用f[i][j]表示前i-1位填写1-j中的数,第i位填j的可能的数目,那么

\[f[i][j]=\sum_{k=1}^{j}f[i-1][k]\]

为了降低复杂度,增加一个\(sum[i][j]=\sum_{k=1}^{j} f[i][k]\),在递推的过程中同时求出sum[i][j]。

 

转载于:https://www.cnblogs.com/txd0u/p/3564380.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值