• HDU 1521 排列组合


    Problem Description
     
    有n种物品,并且知道每种物品的数量。要求从中选出m件物品的排列数。例如有两种物品A,B,并且数量都是1,从中选2件物品,则排列有"AB","BA"两种。
     
    Input
    每组输入数据有两行,第一行是二个数n,m(1<=m,n<=10),表示物品数,第二行有n个数,分别表示这n件物品的数量。
    Output
    对应每组数据输出排列数。(任何运算不会超出2^31的范围)
     
    Sample Input
    2 2 1 1
    Sample Output
    2
    指数型母函数模板题
     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 #include<algorithm>
     5 #include<cmath>
     6 using namespace std;
     7 double a[12],b[12];
     8 long long fac[12];
     9 int d[12],n,m;
    10 int main()
    11 {int i,j,k;
    12   while (cin>>n>>m)
    13   {
    14     memset(a,0,sizeof(a));
    15     memset(b,0,sizeof(b));
    16     for (i=1;i<=n;i++)
    17      scanf("%d",&d[i]);
    18     fac[0]=1;
    19     for (i=1;i<=10;i++)
    20       fac[i]=fac[i-1]*i;
    21     a[0]=1;
    22     for (i=1;i<=n;i++)
    23       {
    24     memset(b,0,sizeof(b));
    25     for (j=0;j<=d[i];j++)
    26       {
    27         for (k=0;k<=m-j;k++)
    28           b[k+j]+=a[k]/(double)fac[j];
    29       }
    30     memcpy(a,b,sizeof(b));
    31       }
    32     printf("%.0lf
    ",a[m]*fac[m]);
    33   }
    34 }
  • 相关阅读:
    分布式文件系统技术选型
    .net core 与nginx笔记
    分布式场景
    c printf函数
    c 编程范式
    VS2019 卡顿,甚至卡死
    SQL Server 跨服务器查询
    递归 0到100求和
    moment js 制作倒计时 比较简单
    关于地狱回调的理解
  • 原文地址:https://www.cnblogs.com/Y-E-T-I/p/8097630.html
Copyright © 2020-2023  润新知