记录编号 |
313897 |
评测结果 |
AAAAAAAAAA |
题目名称 |
[NOI 2001]陨石的秘密 |
最终得分 |
100 |
用户昵称 |
安呐一条小咸鱼。 |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.094 s |
提交时间 |
2016-10-02 14:41:44 |
内存使用 |
0.76 MiB |
显示代码纯文本
#include <cstdio>
#include <iostream>
#define mod 11380
using namespace std;
int l1,l2,l3,deep;
int f[15][15][15][35];
int main()
{
freopen("secret.in","r",stdin);
freopen("secret.out","w",stdout);
scanf("%d %d %d %d",&l1,&l2,&l3,&deep);
for(int i=0;i<=deep;i++)f[0][0][0][i]=1;
for(int d=1;d<=deep;d++)
{
for(int i=0;i<=l1;i++)
{
for(int j=0;j<=l2;j++)
{
for(int k=0;k<=l3;k++)
{
if(i>0||j>0||k>0)
{
int s=0;
for(int ii=0;ii<i;ii++)
{
for(int jj=0;jj<=j;jj++)
{
for(int kk=0;kk<=k;kk++)
{
s=(s+f[ii][jj][kk][d-1]*f[i-ii-1][j-jj][k-kk][d])%mod;
}
}
}
for(int jj=0;jj<j;jj++)
{
for(int kk=0;kk<=k;kk++)
{
s=(s+f[0][jj][kk][d-1]*f[i][j-jj-1][k-kk][d])%mod;
}
}
for(int kk=0;kk<k;kk++)
{
s=(s+f[0][0][kk][d-1]*f[i][j][k-kk-1][d])%mod;
}
f[i][j][k][d]=s;
// printf("%d %d %d %d %d\n",i,j,k,d,f[i][j][k][d]);
}
}
}
}
}
int ans=(f[l1][l2][l3][deep]-f[l1][l2][l3][deep-1]+mod)%mod;
printf("%d",ans);
// system("pause");
fclose(stdin);
fclose(stdout);
return 0;
}