GitBook

这里写图片描述 这里写图片描述

一道排列组合的题目 先从阵地里选出哪几个阵地 然后把士兵让进去 允许空 由排列组合的知识得 C(n+m-1,m-1)

需要注意的是%777 所以使用数组 运用 CMI[i][j]=CMI[i-1][j-1]+CMI[i-1][j] 来计算CMI比较好

#include<stdio.h> 
int CMI[101][101]; 
void GetCMI() { 
    for(int i=0; i<=100; i++) 
        CMI[i][0]=1; 
    for(int i=1; i<=100; i++) { 
        for(int j=1; j<=i; j++) { 
            CMI[i][j]=(CMI[i-1][j-1]+CMI[i-1][j])%777; 
        } 
    } 
} 
  
int main() { 
    GetCMI(); 
    int N,M; 
    while(scanf("%d %d",&N,&M)!=EOF) { 
        int sum=0; 
        for(int i=1; i<=M; i++) { 
            sum=(sum+CMI[M][i]*CMI[N+i-1][i-1])%777; 
        } 
        printf("%d\n",sum); 
    } 
    return 0; 
} 

题目地址:【HPU】[1731]QAQ的问题