算法札记:记忆化搜索中面对多组数据的初始化

2. 记忆化与时间戳

cpp

复制代码
int& ans = d[s][a];
if(vis[s][a] == kase) return ans;
vis[s][a] = kase;

因为是多组测试数据,每次 memset 整个 vis 数组太慢了。刘汝佳用了一个经典的 ICPC 技巧:kase 是当前测试用例的编号。如果 vis[s][a] == kase,说明这个状态在当前这组数据里算过了,直接返回。

int& ans = d[s][a] 是个引用,后面修改 ans 就是直接修改 d[s][a],省去重复写 d[s][a] 的麻烦。

相关推荐
happyprince1 小时前
02-具体观 · JevAny算法与实现剖析
人工智能·算法
Nil2081 小时前
leetcode 75颜色分类
数据结构·算法·leetcode
Liaiyang661 小时前
空圈容错视角 · 多维切面篇:我们生活的世界,不止三维
人工智能·算法·系统架构·前沿技术·哲学·认知科学
闻缺陷则喜何志丹1 小时前
【环】P6709 [CCC 2020] Swapping Seats 环|普及+
算法·洛谷·环
开开心心就好1 小时前
打印机卡住打不了?一键清理卡死打印队列
服务器·开发语言·算法·pdf·ocr·idea·visual studio code
格物致胜工业数智技术1 小时前
锂电纠偏测量那些坑,明治ETD-0612激光纠偏传感器怎么填?
人工智能·算法
垆边人似月.2 小时前
带权区间调度,优先级可负
算法
重生之小比特2 小时前
【算法拾光】双指针|三数之和 + 四数之和
算法
我爱工作&工作love我2 小时前
P14359 [CSP-J 2025] 异或和
算法