【HPU】[1731]QAQ的问题

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

一道排列组合的题目
先从阵地里选出哪几个阵地
然后把士兵让进去 允许空
由排列组合的知识得
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的问题

posted @ 2016-03-24 19:59  BoilTask  阅读(17)  评论(0编辑  收藏  举报