⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1521(不懂).cpp

📁 杭电 acm部分代码 有兴趣的可以下载 谢谢
💻 CPP
字号:
#include <cstdio>
#include <string>
#define MAX 100
double cal[2][MAX];
double *pre,*now,*pt;
int n,m;
int a[11];
double fac[100];
int main()
{
    int i,j,k,sum;
    fac[0] = fac[1] = 1;
    for (i=2;i<=20;i++)
        fac[i] = fac[i-1] * i;
    while (scanf("%d %d",&n,&m)==2) {
        memset(cal,0,sizeof(cal));
        for (i=0;i<n;i++)
            scanf("%d",&a[i]);
        pre = cal[0];
        now = cal[1];
        pre[0] = 1;
        for (i=1;i<=a[0];i++)
            pre[i] = 1.0 / fac[i];
        for (i=1;i<n;i++) {
            for (j=0;j<MAX;j++)
                if (pre[j] > 0)
                    for (k=0;k<=a[i];k++)
                        now[k+j] += pre[j] / fac[k];
            pt = now;
            now = pre;
            pre = pt;
            memset(now,0,sizeof(cal[0]));
            pre[0] = 1;
        }
        printf("%.0lf\n",fac[m] * pre[m]);
    }
}




⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -