poj 1580
来源:互联网 发布:淘宝代销退货 编辑:程序博客网 时间:2024/06/04 00:59
题目意思看不懂那是不太可能的了。不过递归会tle倒有点可疑,因为discuss那里还是有人用递归过了的。
这是一道很简单的dp题,因为dp的方程已经给出并且状态转移方程也都写出了,所以根本没什么难度,就当作是认识一下dp吧,因为dp的形式有两种,一种是递推,另一种是递归,后者多用记忆化搜索来提高效率。
以下是代码:
- #include<cstdio>
using namespace std;
const int M=25;
int w[M][M][M];
int a,b,c; - void init()
{
int i,j,k;
for(i=0;i<=20;i++)
{
for(j=0;j<=20;j++)
{
for(k=0;k<=20;k++)
if(i<=0 || j<=0 || k<=0)
{
w[i][j][k]=1;
}
else if(i<j && j<k)
{
w[i][j][k]=w[i][j][k-1]+w[i][j-1][k-1]-w[i][j-1][k];
}
else
{
w[i][j][k]=w[i-1][j][k]+w[i-1][j-1][k]+w[i-1][j][k-1]-w[i-1][j-1][k-1];
}
}
}
} - int main()
{
init();
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) = %d/n",a,b,c,w[0][0][0]);
}
else if(a>20 || b>20 || c>20)
{
printf("w(%d, %d, %d) = %d/n",a,b,c,w[20][20][20]);
}
else
{
printf("w(%d, %d, %d) = %d/n",a,b,c,w[a][b][c]);
}
}
return 0;
}
- poj 1580
- poj 1580 String Matching
- POJ 1580 Code
- POJ
- poj
- POJ
- POJ
- poj
- poj
- POJ
- POJ
- poj
- POJ
- POJ
- POJ
- POJ
- POJ
- POJ
- 三轴陀螺仪与加速度计如何辅助Iphone定位
- 大学忙忙碌碌的傻蛋
- 自然语言处理之二:隐马尔科夫模型
- 程序三
- 修改系统音量(SystemVolume)的方法
- poj 1580
- MYSQL笔记(一)
- Regex.Split 在分割 "|" 符号时出现问题,应该使用 "[|]" 才可以分组
- excel vba入门 更新中...
- 快速求一个32位无符号整数二进制中为1的个数
- 20110528
- 定机票的好网站
- Java调用摄像头进行拍照源码,并且有JMF下载地址
- 由PID得到进程名