dp——洛谷P2822 组合数问题

来源:互联网 发布:mac日历添加节日 编辑:程序博客网 时间:2024/05/16 17:33

https://www.luogu.org/problem/show?pid=2822
天哪,我水题都不会做了;
太可怕了;
一道dp题披上了数论的的大衣;
就是先搞个杨辉三角+取模;
然后直接矩形前缀和;
我他妈想了半天的数论。。。。。。
Fop_zz说他当年10直接做好了;
…………

#include<map>#include<cmath>#include<cstdio>#include<cstring>#include<cstdlib>#include<iostream>#include<algorithm>using namespace std;int f[2005][2005],d[2005][2005];int n,m,t,k,ans;void make(){    memset(f,-1,sizeof f);    for(int i=1;i<=2000;i++)    for(int j=0;j<=i;j++)        if(j==0||j==i)f[i][j]=1%k;else        f[i][j]=(f[i-1][j]+f[i-1][j-1])%k;    for(int i=1;i<=2000;i++)    for(int j=1;j<=2000;j++)        d[i][j]=d[i-1][j]+d[i][j-1]-d[i-1][j-1]+(int)(f[i][j]==0);}int main(){    scanf("%d%d",&t,&k);    make();    while(t--){        scanf("%d%d",&n,&m);        printf("%d\n",d[n][m]);    }}
1 0
原创粉丝点击