递归的函数 --- 递归的记忆化
来源:互联网 发布:淘宝聚划算抢拍器 编辑:程序博客网 时间:2024/04/28 12:40
递归的函数
Time Limit: 1000MS Memory Limit: 65536KB
Submit Statistic
Problem Description
给定一个函数 f(a, b, c): 如果 a ≤ 0 或 b ≤ 0 或 c ≤ 0 返回值为 1; 如果 a > 20 或 b > 20
或 c > 20 返回值为 f(20, 20, 20); 如果 a < b 并且 b < c 返回 f(a, b, c−1) + f(a,
b−1, c−1) − f(a, b−1, c); 其它情况返回 f(a−1, b, c) + f(a−1, b−1, c) +
f(a−1, b, c−1) − f(a-1, b-1, c-1)。 看起来简单的一个函数?你能做对吗?
Input
输入包含多组测试数据,对于每组测试数据: 输入只有一行为 3 个整数a, b, c(a, b, c < 30)。
Output
对于每组测试数据,输出函数的计算结果。
Example Input
1 1 1
2 2 2
Example Output
2
4
#include <bits/stdc++.h>using namespace std;int x[31][31][31]={0};int f( int a, int b, int c){ if(a<=0||b<=0||c<=0) return 1; else if(a>20||b>20||c>20) return f(20,20,20); else if (x[a][b][c]) return x[a][b][c]; else if(a<b&&b<c) return x[a][b][c]=f(a,b,c-1)+f(a,b-1,c-1)-f(a,b-1,c-1); else return x[a][b][c]=f(a-1,b,c)+f(a-1,b-1,c)+f(a-1,b,c-1)-f(a-1,b-1,c-1);}int main(){ int a,b,c; while (cin>>a>>b>>c) { cout<<f(a,b,c)<<endl; } return 0;}
0 0
- 递归的函数 --- 递归的记忆化
- 递归的函数 记忆化搜索
- ACM-递归递推练习C-递归的函数(记忆化搜索)
- 递归函数的非递归化
- 函数(递归,记忆化搜索)
- 记忆化递归
- 递归+记忆化搜索
- wikioi天梯 1011 数的计算 (记忆化递归)
- 可记忆函数-递归优化
- 递归函数的理解
- 递归函数的学习
- 函数的递归调用
- 函数的递归
- 递归函数的原理
- 递归函数的应用
- 递归函数的应用
- 递归函数的应用
- 函数的递归
- 二分图性质
- 常见排序算法总结
- Django(1.7.11)+Python(2.7.11) centos部署
- 搭建基于mesos的spark集群
- [线段树 区间最值操作 模板 Segment tree Beats!] BZOJ 4695 最假女选手
- 递归的函数 --- 递归的记忆化
- LinkedList
- 认识Android
- void main()和int main()
- js 随机数且不重复
- 第五章 初始化与清理
- poj1046
- PAT A1001. A+B Format (20)
- 支付宝APP支付(Java后台生成签名具体步骤)