题目
题解
记忆化搜索模板题。
记忆化搜索的核心: ① 本质是带剪枝的深搜。 ② 当某点的dp已赋值时,返回该值。 ③ 其他情况进行深度搜索。
模板:
dfs(u点) {
if u点的 dp 已经有值了 : return u点的 dp 值
else 说明第一次到达u,则为u的 dp 赋初值
for 遍历四个方向,确定合理的下一个位置 :
通过深搜dfs返回的值更新u点的 dp 值
return u点的 dp 值
}
main() {
for 遍历全部起点s :
ans = max/min{ans, dfs(s)}
}
代码
// 滑雪 记忆化搜索
#include
using namespace std;
const int N = 310;
int dir[4][2] = {-1, 0, 1, 0, 0, -1, 0, 1};
int n, m;
int dp[N][N], a[N][N], ans;
int dfs (int x, int y) {
if (dp[x][y] != 0) return dp[x][y]; // 如果(x,y)的dp已经有值了,说明(x,y)这个点的价值已经固定了!之后再遇到要计算该点价值的情况直接返回即可。
if (dp[x][y] == 0) dp[x][y] = 1; // 如果dp为0,说明第一次计算该点,所以赋值为1,表示从任意一个点开始滑雪,高度至少为1。
for (int k = 0;k > m;
for (int i = 1;i a[i][j];
for (int i = 1;i
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?