首页 > 其他分享 >P1464 Function(记忆化搜索)(宏定义)

P1464 Function(记忆化搜索)(宏定义)

时间:2023-12-18 18:11:05浏览次数:23  
标签:Function 20 定义 P1464 ll 30 搜索 include

P1464 Function

记忆化搜索(引用洛谷上题解的原话,自己是个废物想不到):

只要确定好数组和范围就可以把搜索中的每一次结果存起来, 正在搜索的项目中也可以用到这些信息 。
这便是记忆化搜索的核心与关键:自定义函数与数组达到“实时互动的状态”。

好处

通过数组直接记录值,减少重复递归过程来减少运行时间。

注意

数组下标不能为负数,对于负数直接特判。

宏定义

(第一次接触记录下用法)
(#define) (定义的对象)(定义的含义)

#include <iostream>
#include <string>
#include <algorithm>
#include <cmath>
#define ll long long
using namespace std;
ll d[30][30][30];

int w(ll a, ll b, ll c) {

	if (a <= 0 || b <= 0 || c <= 0) {


		return 1;
	} else if (a > 20 || b > 20 || c > 20) {
		if (d[20][20][20] == 0) {
			d[20][20][20] = w(20, 20, 20);
		}
		return d[20][20][20];
	} else if (a < b & b < c) {
		if (d[a][b][c] == 0) {
			d[a][b][c] = w(a, b, c - 1) + w(a, b - 1, c - 1) - w(a, b - 1, c);
		}
		return d[a][b][c];
	} else {
		if (d[a][b][c] == 0) {
			d[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);
		}
		return d[a][b][c];
	}
}

int main() {
	while (true) {
		ll a, b, c;
		cin >> a >> b >> c;
		if (a == -1 & b == -1 & c == -1) {
			break;
		} else {
			cout << "w(" << a << ", " << b << ", " << c << ") = " << w(a, b, c) << endl;
		}
	}
	return 0;
}

标签:Function,20,定义,P1464,ll,30,搜索,include
From: https://www.cnblogs.com/sdlypsck/p/17911852.html

相关文章

  • 函数function及案例
    <!DOCTYPEhtml><html><head><metacharset="utf-8"><title></title></head><body><script>/*Function函数是一个复杂的数据类型......
  • SAP搜索帮助的限制值范围样式
    样式一:点击下拉框,输入筛选数据,筛选搜索帮助列表样式二:点击漏斗,输入筛选数据,筛选搜索帮助列表参数设置:不同的样式,通过账号的参数设置决定第一种样式:没有配置F4METHOD,或者配置了参数值为ActiveX第二种样式:配置了F4METHOD且值为NoActiveX 定期更文,欢迎关注    ......
  • 关于DVWA靶场File Inclusion中出现The PHP function allow_url_include is not enable
    做实验时发现fileinclusion报错:ThePHPfunctionallow_url_includeisnotenabled,翻译一下是PHP函数allow_url_include还未启用,这时我想到之前好像配置DVWA靶场环境时也用到了这个第一反应我跑去查看PHP配置文件php.ini纳尼?!allow_url_include=on啊,明明已经开了啊剑锋一转难不成......
  • 神奇的 SQL 高级处理之 Window Functions → 打破我们的局限
    什么是窗口函数 WindowFunction 也称为 OLAP(OnlineAnalyticalProcessing)函数 对数据库数据进行实时分析处理,例如市场分析、财务报表等,是标准的SQL功能中文翻译过来,叫 窗口函数 ,或者 开窗函数 ,在 Oracle 中也称 分析函数 与 聚合函数 一样......
  • Qt搜索本机网卡对应网段的在线设备
    需求:销售给我的需求是找出哪些IP是没有被占用的,所以我要先找出已经被占用的IP 项目是Qt开发的,所以在网上搜索了下,搜索到的实现方式都是:QHostInfo::lookupHost,但是这种方式,我发现有部分已经占用了的IP还是搜索不出来,遂放弃这种方式。//QHostInfo::lookupHost方式搜索占用的I......
  • 人工智能-A*算法-最优路径搜索实验
    上次学会了《A*算法-八数码问题》,初步了解了A*算法的原理,本次再用A*算法完成一个最优路径搜索实验。 一、实验内容1.设计自己的启发式函数。2.在网格地图中,设计部分障碍物。3.实现A*算法,搜索一条最优路径。 二、A*算法实现步骤1.初始化:设置起始节点和目标节点,并创建一......
  • java实现二叉树前序搜索输出深度完整代码
    importjava.util.Scanner;//1:无需package//2:类名必须Main,不可修改classTreeNode{publicintval;publicTreeNodeleft;publicTreeNoderight;publicTreeNode(intval){this.val=val;this.left=null;this.right=null;}}p......
  • MATLAB 函数句柄Function handle的用法
    函数句柄的作用是可以把函数句柄直接设置为参数然后执行  函数句柄(Functionhandle)是MATLAB的一种数据类型。引入函数句柄是为了使feval及借助于它的泛函指令工作更可靠;使“函数调用”像“变量调用”一样方便灵活;提高函数调用速度,特别在反复调用情况下更显效率;提高软件重用性,......
  • 一种可以实现搜索结果按照相似度来排序的sql,核心是分词和order by like 的使用
    常规的搜索一般使用like执行模糊搜索,这种搜索有个缺陷,一旦搜索内容里面有一个错的就会导致搜索失败。有没有一种实现可以容错的且按照相似度排序的方法呢?类似百度google那样的。经过自己的测试发现使用分词结合排序的orderbylike可以实现。我直接给出例子sql的吧  比如......
  • INFINI Labs 产品更新 | Easysearch 新增快照搜索功能,Console 支持 OpenSearch 存储
    INFINILabs产品又更新啦~,包括Easysearchv1.7.0、Consolev1.13.0。本次各产品更新了Easysearch快照搜索功能;Console支持OpenSearch集群存储系统数据、优化了初始化安装向导流程等。以下是本次更新的详细说明。INFINIEasysearchv1.7.0INFINIEasysearch是一个分布......