POJ&&HDU 1579 ZOJ 1168 Function Run Fun
2014-07-21 22:37
183 查看
POJ&&HDU 1579 ZOJ 1168 Function Run Fun 题目链接:http://poj.org/problem?id=1579
题目大意:给出一个递归式的定义,求按照递归定义算得的值。
题目分析:记忆化搜索打表,省去重复多次的中间步骤。
code:
#include<stdio.h>//记忆
#include<string.h>
int a,b,c,fac[21][21][21];
int w(int a,int b,int c)
{
if(a<=0||b<=0||c<=0)
return 1;
if(a>20||b>20||c>20)
return fac[20][20][20]=w(20,20,20);
if(fac[a][b][c]!=0)
return fac[a][b][c];
if(a<b&&b<c)
return fac[a][b][c]=w(a,b,c-1)+w(a,b-1,c-1)-w(a,b-1,c);
else
return fac[a][b][c]=w(a-1,b,c)+w(a-1,b-1,c)+w(a-1,b,c-1)-w(a-1,b-1,c-1);
}
int main()
{
while(scanf("%d%d%d",&a,&b,&c))
{
if(a==-1&&b==-1&&c==-1)break;
memset(fac,0,sizeof(fac));
printf("w(%d, %d, %d) = %d\n",a,b,c,w(a,b,c));
}
return 0;
}
PS:一道老题了,还是坤哥给我讲的,记忆犹新…
题目大意:给出一个递归式的定义,求按照递归定义算得的值。
题目分析:记忆化搜索打表,省去重复多次的中间步骤。
code:
#include<stdio.h>//记忆
#include<string.h>
int a,b,c,fac[21][21][21];
int w(int a,int b,int c)
{
if(a<=0||b<=0||c<=0)
return 1;
if(a>20||b>20||c>20)
return fac[20][20][20]=w(20,20,20);
if(fac[a][b][c]!=0)
return fac[a][b][c];
if(a<b&&b<c)
return fac[a][b][c]=w(a,b,c-1)+w(a,b-1,c-1)-w(a,b-1,c);
else
return fac[a][b][c]=w(a-1,b,c)+w(a-1,b-1,c)+w(a-1,b,c-1)-w(a-1,b-1,c-1);
}
int main()
{
while(scanf("%d%d%d",&a,&b,&c))
{
if(a==-1&&b==-1&&c==-1)break;
memset(fac,0,sizeof(fac));
printf("w(%d, %d, %d) = %d\n",a,b,c,w(a,b,c));
}
return 0;
}
PS:一道老题了,还是坤哥给我讲的,记忆犹新…
相关文章推荐
- hdu 1671 & poj 3630 Phone List
- poj 1151 && hdu 1542 离散化求矩形面积的并
- poj 1177 & hdu 1828 矩形周长并
- 平面图网络流(poj 2822 & hdu 4280 )
- POJ 1573 && hdu 1035 Robot Motion【简单模拟】
- poj 1177 & hdu 1828 Picture(线段树+离散化)
- poj 3694&&hdu 2460 (手写递归栈版的tarjan)
- POJ 1985 && BOJ 196 && HDU 2196
- Hdu 1829 A Bug's Life && Poj 1182 食物链 (并查集偏移量的应用)
- hdu 4284(状态压缩)&& poj 3311 &&,,,
- poj 1151 && hdu 1542 求矩形面积并(线段树)
- HDU_1496 Equations && POJ_1840 Eqs(Hash)
- HDU_1051 && POJ_1065 Wooden Sticks(贪心)
- hdu 1238 & POJ 1226 Substrings
- poj 1503 && hdu 1047 大数相加
- poj 2186 && hdu 3836
- HDU_1055 && POJ_2054 Color a Tree(贪心)
- POJ 1177 Picture & hdu 1828 Picture(扫描线)
- POJ 1573 && hdu 1035 Robot Motion【简单模拟】
- hdu 1525 || poj 2348 Euclid's Game(博弈找规律)