hdu1331 按着题目的公式直接写

时间:2022-11-18 06:50:27
#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
#define N 310
#define M 50010
#define inf 1<<30
using namespace std;
int dp[][][];
int main()
{
int a,b,c,i,j;
memset(dp,,sizeof(dp));
for(i=;i<=;i++)
for(j=;j<=;j++)
{
dp[][i][j]=;
dp[i][][j]=;
dp[i][j][]=;
}
for(i=;i<=;i++)
{
for(j=;j<=;j++)
for(int k=;k<=;k++)
{
if(i<j&&j<k)
{
dp[i][j][k]=dp[i][j][k-]+dp[i][j-][k-]-dp[i][j-][k];
}
else
dp[i][j][k]=dp[i-][j][k]+dp[i-][j-][k]+dp[i-][j][k-]-dp[i-][j-][k-];
}
}
while(scanf("%d%d%d",&a,&b,&c)!=EOF)
{
if(a==-&&b==-&&c==-)
return ;
if(a<=||b<=||c<=)
{
printf("w(%d, %d, %d) = 1\n",a,b,c);
continue;
}
if(a>||b>||c>)
{
printf("w(%d, %d, %d) = %d\n",a,b,c,dp[][][]);
continue;
}
else
printf("w(%d, %d, %d) = %d\n",a,b,c,dp[a][b][c]);
}
return ;
}