zoukankan      html  css  js  c++  java
  • Codeforces Round #309 (Div. 2) C

    题意:
    就是给出总共同拥有k种颜色。每种颜色有ki种,排列必须满足第i+1种的最后一种颜色必须在第i种最后一种颜色的后面,其它颜色任意。总共同拥有多少种排列点的方法。

    分析:

    如果d[i]表示前i种的排列的数量,那么第i+1种的数量就是d[i]*C(a[1]+a[2]+..a[i+1]-1,a[i+1]-1);预先处理好排列组合数就好了。直接计算。

    ps:CF的比赛时间还真是有点烦,话说我一直不明确为什么我看电视能坚持到两点,打CF就不行呢?于是我就边看电视边打CF~哈哈哈哈

    #include <cstdio>
    #include <cstring>
    #include <cmath>
    #include <iostream>
    #include <vector>
    #include <map>
    #include <algorithm>
    #define read freopen("q.in","r",stdin)
    #define LL long long
    #define maxn 1005
    #define mod 1000000007
    using namespace std;
    int c[maxn][maxn];
    int a[maxn];
    int main()
    {
        int i,j,k;
        c[1][0]=c[1][1]=1;
        for(i=2;i<maxn;i++)
        {
            c[i][0]=1;
            for(j=1;j<=i;j++)c[i][j]=(c[i-1][j-1]+c[i-1][j])%mod;
        }
    
        scanf("%d",&k);
        int x,sum=0;
        for(i=1;i<=k;i++)
        {
            scanf("%d",&a[i]);
            sum+=a[i];
        }
        LL res=1;
    
        for(i=k;i>1;i--)
        {
            res=(res*(LL)c[sum-1][a[i]-1])%mod;
            sum-=a[i];   
         } 
        cout<<res<<endl;
    
    }
    
  • 相关阅读:
    ssh session 共享
    python 快速开启http服务
    GCC 默认头文件搜索路径
    GCC 部分单元测试编译失败
    随机森林与GBDT
    DecisionTree
    SVM
    KDDCUP CTR预测比赛总结
    剑指offer-java
    搜狗搜索日志传输与分析
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/5123688.html
Copyright © 2011-2022 走看看