B - 阿克曼函数(记忆化搜索(啊呸))
在我的不懈努(爆)力(零)下,我把阿克曼函数的记忆化搜索用我的泥头车创出来了(啧),不过这个记忆化应该不是最优解(或者说仿?),31ms跑完小数据,说实话有点慢(确实),如果有大lao写出了正宗的记忆化搜索,,请赐教!评论或私信都行!
阿克曼(Arkmann)函数 A(m,n)A(m,n) 中,m与n的定义域是非负整数且本题中m<=3,n<=16。
函数的定义为:
$$akm(m,n)=\left\{
\begin{align}
&n+1 && (m=0)\\
&akm(m-1,1) && (m>0,n=0)\\
&akm(m-1,akm(m,n-1)) && (m>0,n>0)\\
\end{align}
\right.$$Input
两个整数 m n
Output
一个整数,akm(m,n)的结果
Sample Input
1 1Sample Output
3Sponsor
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<algorithm>
using namespace std;
typedef long long ll;
ll m, n;//后面这些地方用int也没事,刚开始做题的时候我拿不准,用的ll
ll p[5][550000];//b的峰值在550000左右(试出来的,我的小笔记本连3,13都跑不动)
ll Ack(ll a, ll b) {//已经限定过非负整数了,注意a,b和m,n并不等价,只是调用了初始值if (p[a][b]) return p[a][b];if (a == 0) {p[a][b] = b + 1;//记忆化return b + 1;}else if (a > 0 && b == 0) {ll k = Ack(a - 1, 1);p[a][b] = k;return k;}else {ll k = Ack(a - 1, Ack(a, b - 1));p[a][b] = k;return k;}
}
int main() {ios::sync_with_stdio(false);cin.tie(0);cin >> m >> n;cout << Ack(m, n) << endl;
}
B - 阿克曼函数(记忆化搜索(啊呸))相关推荐
- 22.11.30打卡 记忆化搜索2水题
Function Run Fun 记忆化搜索模板题, 个人认为比滑雪还简单 需要注意的只有当数组下标为负数的时候需要特判一下 其余直接照抄题目就能过了 /* ⣿⣿⣿⣿⣿⣿⡷⣯⢿⣿⣷⣻⢯⣿⡽⣻⢿⣿⣿⣿⣿ ...
- 数位dp 记忆化搜索java_hdu 5787 数位dp,记忆化搜索
题意:求区间[l,r]内有多少个数符合,这个数的任意的相邻k位数(digits),这k个数都两两不相等 l,r范围是1~1e18,k是2~5 思路:数位DP,因为K<=5,我们最多需要保存下来当 ...
- 数据结构-记忆化搜索讲解
算法:记忆化搜索算法 一:简述 记忆化搜索实际上是递归来实现的,但是递归的过程中有许多的结果是被反复计算的,这样会大大降低算法的执行效率. 而记忆化搜索是在递归的过程中,将已经计算出来的结果保存起来, ...
- 【记忆化搜索】P1464 Function
https://www.luogu.com.cn/problem/P1464 考点:记忆化搜索.递归.map 题意: 按照题目要求写递归函数. 解法: 在函数开始时查看哈希表中是否已经有答案记录,如果 ...
- hdu1428(spfa与记忆化搜索)
漫步校园 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- FatMouse and Cheese HDU - 1078(记忆化搜索入门模板)
题意: n * n的正方形格子(每个格子均放了奶酪),老鼠从(0,0)开始,每次最多移动k步,可以选择上下左右四个方向移动,下一个移动点奶酪块数量必须要大于当前点. 整理模板ing- 题目: FatM ...
- [Leetcode][第322题][JAVA][零钱兑换][回溯][记忆化搜索][动态规划]
[问题描述][中等] [解答思路] 1. 递归(超时) class Solution {int res = Integer.MAX_VALUE;public int coinChange(int[] ...
- 【牛客 - 301哈尔滨理工大学软件与微电子学院第八届程序设计竞赛同步赛(高年级)】小乐乐下象棋(记忆化搜索dp,dfs)
题干: 小乐乐一天天就知道玩,这一天又想玩象棋. 我们都知道马走日. 现在给定一个棋盘,大小是n*m,把棋盘放在第一象限,棋盘的左下角是(0,0),右上角是(n - 1, m - 1); 小乐乐想知道 ...
- [笔记]极大极小过程的alpha-beta剪枝不可与记忆化搜索一起使用
今天做SGU 423,WA得我眼泪汪汪.后来发现原来这个问题很早就被何牛提到过: 极大极小过程的alpha-beta剪枝不可与记忆化搜索一起使用. 原因是这样的: 在一个博弈图中,可能存在这样的情况: ...
最新文章
- Postman接口调试神器-Chrome浏览器插件
- Horseshoe prior的R package介绍:HS.normal.mean函数
- Centos6.5硬盘故障修复
- IDEA中Alt + Insert快捷键定制生成类方法
- J - 简单枚举类型——植物与颜色
- unable to verify the first certificate
- 黑金AX301 SDRAM读写
- bilibili直播: Vue.js Podcast(小记录)~~~
- 第十八章、ActiveX控件
- Zune WIFI无线同步教程
- 调用python-nmap实现扫描局域网存活主机
- Python编程实战:寻找回文
- GISer开发者的技能清单
- 正则表达式,分组,捕获组,反向引用,重复数字正则表达式 ,python 实现
- 机器学习数据的预处理
- [2021.8纪中集训Day14]
- 矩阵的乘法口诀(一)
- Opencv 原图像素坐标点透视变换后对应坐标点
- BSCI认证的相关认知
- 数据库读写分离(一)
热门文章
- Axure 元件属性
- html文章标题列表,内容页(文章及产品页)标题该怎么写
- 国内外无代码可视化开发平台一览
- 曾扬言 机器人合法公民_曾扬言“摧毁人类”的机器人索菲亚,现状如何?如果失控了咋办?...
- 《大掌门》欧阳刘彬:基于Cocos2d-x引擎开发经验分享
- 绿米Aqara、飞利浦等设备,如何与智汀使用同一个APP实现跨品牌互联?
- javascript html 去除,javascript去除html标签
- 微信小程序 | 自动定时结束录制
- unity3d学习笔记——老版动画系统的使用
- 三星s8android版本,三星Galaxy S8的手机系统是什么