地址链接:https://www.acwing.com/problem/content/description/1214/
问题描述

问题分析

对于每一个位置,可以有行,列两个属性,对于每一个位置,还会有走到当前位置已经选取了nn个物品,对于所选的物品,又可以有所有物品的最大价值mm。
const int N = 55, M = 15;
dp描述:intf[N][N][M][M];
意义:f[i][j][nn][mm]i,j时 有nn个物品,且最大价值为mm的方案数
对于物品的价值,题目所给的范围为0-12,那么当我们不选择一个物品的时候,他所带来的的价值就是0,这与选择0价值的物品所不符合。所以可以选择给物品的价值+1,这样不选择一个物品,他的价值就可以是0,而选择一个物品的价值就变成了1-13。

对于状态转移方程,这里引用yxc总的思路图(懒得画了,哈 )

程序实现
#include <iostream>
#include <cstring>
using namespace std;
const int N = 55, M = 15;
const int mod = 1e9 + 7;
int n,m,k;
// f[i][j][nn][mm] i,j 时 有nn个物品,且最大价值为mm 的方案数
int f[N][N][M][M];
int</

本文详细探讨了蓝桥杯比赛中的地宫取宝问题,从问题描述、问题分析到程序实现进行深入讲解。针对每个位置,分析如何在限制物品数量和价值的情况下,求得最大价值的解决方案。通过状态转移方程解析算法思路。
最低0.47元/天 解锁文章
368

被折叠的 条评论
为什么被折叠?



