2017.4.26 组合数问题 思考记录

来源:互联网 发布:网络布线 报价 编辑:程序博客网 时间:2024/06/06 15:45

        这个题和其他前缀和的题相比实在太直白了、

       然而考场上并不会二维前缀和、、、、

         

       注意判断的时候要加上j<i就行了、


码:

#include<iostream>#include<cstdio>using namespace std;int f[2009][2009],hang[2009],T,i,k,sum[2009][2009],j,n,m;int main(){scanf("%d%d",&T,&k);f[0][0]=1;for(i=1;i<=2000;i++){hang[0]=0;f[i][0]=1;for(j=1;j<=2000;j++){f[i][j]=(f[i-1][j]+f[i-1][j-1])%k;if(!f[i][j]&&j<=i)hang[j]=hang[j-1]+1;else hang[j]=hang[j-1];//f[i][j]%=k;    //hang[j]=hang[j-1]+f[i][j];    sum[i][j]=sum[i-1][j]+hang[j];//printf("%d %d     %d\n",i,j,sum[i][j]);}   }   for(i=1;i<=T;i++)   {   scanf("%d%d",&n,&m);      printf("%d\n",sum[n][m]);      }}


0 0
原创粉丝点击