SRM609 DIV2 950

题意:

有三个歌手想制作一个含有S(1<=S<=50)首歌的专辑,其中这三名歌手分别唱x,y,z首歌(0<=x,y,z<=50),每一首歌至少要有一个人唱(可以是其中任一个人、两个人或者三个人的组合),问专辑可能有多少种(不同种类的专辑:两个专辑至少有一首歌是不同组合的歌手唱的)?结果对1000000007取模。

分析:

一个个考虑,先考虑第一位歌手,可能性是(C(_S^x));

在剩余的S-x首歌种,第二位歌手在这剩余的歌中至少唱多少首歌呢?首先要保证至少每首歌有一个人唱,如果S-x-z>=0,则至少唱S-x-z首歌,否则最少唱0首;最多唱多少首呢?不超过S-x且不超过y,假设唱了i首歌,可能性是[sum_{i= ext{max}(0,S-x-z)}^{ ext{min}(S-x,y)}C(_{S-x}^i)C(_x^{y-i})]

对于第三位歌手,必须把目前剩余的歌(S-x-i)唱完,剩余的在x+i首歌种任意选择,所以总的可能性是:

[C(_S^x)sum_{i= ext{max}(0,S-x-z)}^{ ext{min}(S-x,y)}C(_{S-x}^i)C(_x^{y-i})C(_{x+i}^{z+x+i-S})]

组合数预处理下或者记忆化。

原文地址:https://www.cnblogs.com/txd0u/p/3555358.html