20170720

来源:互联网 发布:淘宝情侣装店铺 编辑:程序博客网 时间:2024/06/05 19:36


T2:

给定一个 n×m 的矩阵,行列均从 1 开始标号。

一个矩阵被认为是稳定的,当且仅当对于任意的 2≤i≤n,第 i 行的数的和不小于第 i−1 行的数的和,且最后一行的数的和小于等于 m ,并且要求矩阵中所有的元素都是非负的。

求所有 n×m 的稳定矩阵的方案数,答案对 109 取模。

输入




1 1 
2 2 
2 3

输出


25 
273
f[i][j]->一行有i个数,和为j方案总数
ans[i][j]
动规
二位的前缀和优化   所有ans[0]都要付初值

#include<bits/stdc++.h>using namespace std;const int mod=1e9;long long f[2005][2005],ans[2005][2005];int T,n,m;int main(){for(int i=0;i<=2000;++i) f[i][0]=1,ans[i][0]=ans[0][i]=1; //☆ for(int i=1;i<=2000;++i)for(int j=1;j<=2000;++j)f[i][j]=(f[i-1][j]+f[i][j-1])%mod;scanf("%d",&T);while(T--){scanf("%d%d",&n,&m);for(int i=1;i<=n;++i){ans[i][0]=ans[i-1][0]*f[m][0]%mod;for(int j=1;j<=m;++j)ans[i][j]=(ans[i][j-1]+ans[i-1][j]*f[m][j])%mod;}cout<<ans[n][m]<<endl;}}


原创粉丝点击