Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
55444 | xujindong | T3 作业 | C++ | 解答错误 | 10 | 2005 MS | 648 KB | 775 | 2022-08-18 11:02:17 |
#include<bits/stdc++.h> using namespace std; template<typename T>void in(T &a) { T ans=0; char c=getchar(); for(;c<'0'||c>'9';c=getchar()); for(;c>='0'&&c<='9';c=getchar())ans=ans*10+c-'0'; a=ans; } unsigned int n,m,k,ans,a[505],f[2][455][75]; int main(){ register int i,j,l,c; f[0][0][1]=1,in(n),in(m),in(k); for(i=1;i<=n;i++)in(a[i]); for(i=0;i<m;i++){ memset(f[(i+1)&1],0,sizeof(f[(i+1)&1])); for(j=0;j<=k;j++){ for(l=1;l<=n;l++){ for(c=l;c<=n;c++){ if(j+a[c]<=k){ f[(i+1)&1][j+a[c]][c]+=f[i&1][j][l],f[(i+1)&1][j+a[c]][c]%=1000000007; } } } } } for(i=0;i<=k;i++)for(j=1;j<=n;j++)ans=(ans+f[m&1][i][j])%1000000007; return printf("%d\n",ans),0; }