zoukankan      html  css  js  c++  java
  • 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})]

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

  • 相关阅读:
    springboot配置jsp
    idea项目启动问题
    源码中的设计模式-模板方法模式
    Kafka Eagle CentOS6安装
    源码中的设计模式-静态代理模式
    MySQL主从复制小记
    源码中的设计模式-观察者模式
    源码中的设计模式-单例模式
    Superset
    Hive随记
  • 原文地址:https://www.cnblogs.com/txd0u/p/3555358.html
Copyright © 2011-2022 走看看