题目描述
对于一个递归函数w(a,b,c)w(a,b,c)

如果a \le 0a≤0 or b \le 0b≤0 or c \le 0c≤0就返回值11.
如果a>20a>20 or b>20b>20 or c>20c>20就返回w(20,20,20)w(20,20,20)
如果a<ba<b并且b<cb<c 就返回w(a,b,c-1)+w(a,b-1,c-1)-w(a,b-1,c)w(a,b,c−1)+w(a,b−1,c−1)−w(a,b−1,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)w(a−1,b,c)+w(a−1,b−1,c)+w(a−1,b,c−1)−w(a−1,b−1,c−1)
这是个简单的递归函数,但实现起来可能会有些问题。当a,b,ca,b,c均为15时,调用的次数将非常的多。你要想个办法才行.

/* absi2011 : 比如 w(30,-1,0)w(30,−1,0)既满足条件1又满足条件2

这种时候我们就按最上面的条件来算

所以答案为1

*/

输入格式
会有若干行。

并以-1,-1,-1−1,−1,−1结束。

保证输入的数在[ -9223372036854775808,9223372036854775807 ] [ −9223372036854775808,9223372036854775807 ]之间,并且是整数。

输出格式
输出若干行,每一行格式:

w(a, b, c) = ans

注意空格。

输入输出样例
输入 #1复制
1 1 1
2 2 2
-1 -1 -1
输出 #1复制
w(1, 1, 1) = 2
w(2, 2, 2) = 4
说明/提示
记忆化搜索

AC代码如下

#include<stdio.h>//洛谷Function
long long int t[25][25][25];
long long int w(long long a,long long b,long long c);
int main()
{long long int a,b,c;while(1){scanf("%lld%lld%lld",&a,&b,&c);if(a==-1&&b==-1&&c==-1) break;printf("w(%lld, %lld, %lld) = %lld\n",a,b,c,w(a,b,c));}return 0;
}
long long int w(long long a,long long b,long long c)
{if(a<=0||b<=0||c<=0) return 1;if(a>20||b>20||c>20) {if(t[20][20][20]) return t[20][20][20];else return t[20][20][20]=w(20,20,20);}if(t[a][b][c]) return t[a][b][c];if(a<b&&b<c) return t[a][b][c]=w(a,b,c-1)+w(a,b-1,c-1)-w(a,b-1,c);else return t[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);
}

P1464 Function相关推荐

  1. Java 洛谷 P1464 Function

    题目链接:https://www.luogu.com.cn/problem/P1464 知识讲解: 记忆化搜索实际上是递归来实现的,但是递归的过程中有许多的结果是被反复计算的,这样会大大降低算法的执行 ...

  2. 【记忆化搜索】P1464 Function

    https://www.luogu.com.cn/problem/P1464 考点:记忆化搜索.递归.map 题意: 按照题目要求写递归函数. 解法: 在函数开始时查看哈希表中是否已经有答案记录,如果 ...

  3. P1464 Function(递归式的记忆化搜索)

    传送门 题目描述 对于一个递归函数w(a,b,c)w(a,b,c)w(a,b,c) 如果a≤0a≤0orb≤0b≤0orc≤0c≤0a \le 0a≤0 or b \le 0b≤0 or c \le ...

  4. 落谷 P1464 function (空间换时间、记忆化搜索)

    题目描述 对于一个递归函数w(a,b,c)w(a,b,c)w(a,b,c) 如果a≤0a \le 0a≤0 or b≤0b \le 0b≤0 or c≤0c \le 0c≤0就返回值111. 如果a& ...

  5. 洛谷【算法1-4】递推与递归

    P1255 数楼梯 对于 100% 的数据,1≤N≤5000. 高精度斐波那契 #include <iostream> using namespace std;const int N = ...

  6. 新手村之BOSS战-入门综合练习2

    P1426 小鱼会有危险吗 总:三个字--暴力. vars,x,ans,n:real; beginreadln(s,x);ans:=0; n:=7;while ans<s-x dobeginan ...

  7. linux查看进程打开的句柄数,【转】Linux下查看进程打开的文件句柄数

    .Net Html如何上传图片到一般应用程序 用html实现图片上传 后台采用.net其中在这里要借用一个js插件 在这里我会写一个图片上传的一个小Demo,有不全的地方多多包容,和提议, 我把已经写 ...

  8. WaWa的奇妙冒险(第一周集训自闭现场)

    第一周周记 (一)例题记录 A-Download Manager (水题) HDU - 3233 Input Output Sample Input Sample Output 理解 AC代码 B-J ...

  9. Python数据结构与算法分析 第四章 递归 贪心 动态规划bp 记忆化搜索

    递归算法也总结出 三定律  1,递归算法必须有一个基本结束条件(最小规模问题的直接解决)  2, 递归算法必须能改变状态向基本结束条件演 进(减小问题规模)  3,递归算法必须调用自身 (解决减小了规 ...

最新文章

  1. python制作词云时出现figure1 figure2_用Python生成词云
  2. 支持断线重连、永久watcher、递归操作并且能跨平台(.NET Core)的ZooKeeper异步客户端
  3. java实现可有括号的android计算器
  4. python 解小学数学题_孩子尝试python解数学题,怎么实现呢?
  5. 大屏监控系统实战(15)-打包上线及总结
  6. 2021牛气新年素材模板,你真的不来看一看吗?
  7. 分段式多级离心泵_分段式多级离心泵工作原理
  8. 2021-09-03Dien
  9. 读取金税盘数据库_金税盘无法连接数据库是怎么回事
  10. java学生成绩管理系统类图,学生成绩管理系统的用例类图.ppt
  11. WORD中如何调整字间距
  12. 异步fifo_【好设计论文】一种面向异步FIFO的低开销容错机制研究
  13. 基于CPU+GPU的H.264编码器并行编码设计
  14. Markdown 插入视频
  15. markdown 不等于
  16. 小议费雪线性判别(Fisher Linear Discriminant Analysis)
  17. 41. 整合RabbitMQ发送短信
  18. 精彩的javascript代码(包括表单校验等等)
  19. 草图大师SketchUp绘图-定制亚克力外壳教程
  20. android 8 音质,体验中国好音质 8款HiFi音质手机推荐

热门文章

  1. 前端跨域问题(CORS)
  2. LAMP的部署(一)
  3. linux中对shell变量内容的修改和替换
  4. druid 多数据源_SpringBoot+Mybatis+Druid+PageHelper 实现多数据源并分页
  5. S5PV210体系结构与接口08:定时器 计数器编程
  6. Axure 点图片外区域即隐藏_澳网红分享麦当劳隐藏饮料:咖啡混可乐再加点这个,神仙级好喝...
  7. Linux下的进程内存结构
  8. python语言适合哪些领域的计算问题数据处理和文本挖掘_R和Python中文本挖掘8大入门指南...
  9. java导入excel数据到mysql_java的poi技术读取Excel数据到MySQL
  10. 一文带你了解Java反射机制