洛谷 P5239 回忆京都 题解

题面

裸的杨辉三角前缀和,但-----

在求前缀和的时候有可能得到一个负数(由于取模的原因),所以一定要加上模数后再取模!!!!

#include <bits/stdc++.h>
#define p 19260817
using namespace std;
long long a[1010][1010];
long long sum[1010][1010];
signed main()
{
    int n,m;
    a[1][0]=1;
    a[1][1]=1;
    for(register int i=2;i<=1005;i++){
        a[i][0]=1;
        for(register int j=1;j<=i;j++){
            a[i][j]=(a[i-1][j]+a[i-1][j-1])%p;
        }
    }
    for(int i=1;i<=1000;i++){
        for(int j=1;j<=1000;j++){
            sum[i][j]=(sum[i-1][j]+sum[i][j-1]-sum[i-1][j-1]+a[i][j]+p)%p;
        }
    }
    int q;
    cin>>q;
    for(int i=1;i<=q;i++){
        int n,m;
        scanf("%d%d",&n,&m);
        printf("%lld
",sum[m][n]);
    }
}
原文地址:https://www.cnblogs.com/kamimxr/p/11493538.html