您的位置:首页 > 其它

POJ_1579_Function Run Fun

2010-06-24 00:19 302 查看
///使用递推的方法,简单的DP,但是思想很重要
#include<stdio.h>
long ans[21][21][21];
int main()
{
int a,b,c;
int i,j,k;
for(i=0;i<21;i++)
{
for(j=0;j<21;j++)
{
ans[0][i][j]=1;
ans[i][0][j]=1;
ans[i][j][0]=1;
}
}
for(i=1;i<21;i++)
{
for(j=1;j<21;j++)
{
for(k=1;k<21;k++)
{
if(i<j&&j<k)
ans[i][j][k]=ans[i][j][k-1]+ans[i][j-1][k-1]/
-ans[i][j-1][k];
else
ans[i][j][k]=ans[i-1][j][k]+ans[i-1][j-1][k]/
+ans[i-1][j][k-1]-ans[i-1][j-1][k-1];
}
}
}
while(scanf("%d%d%d",&a,&b,&c)==3)
{
if(a==-1&&b==-1&&c==-1)
break;
if(a<0||b<0||c<0)
printf("w(%d, %d, %d) = 1/n",a,b,c);
else if(a>20||b>20||c>20)
printf("w(%d, %d, %d) = %d/n",a,b,c,ans[20][20][20]);
else
printf("w(%d, %d, %d) = %d/n",a,b,c,ans[a][b][c]);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: