题目描述:

现在有一个8*8的棋盘,上面放着64个不同价值的礼物,每个小的棋盘上面放置一个礼物(礼物的价值大于0小于100),一个人初始位置在棋盘的左上角,每次他只能向下或向右移动一步,并拿走对应棋盘上的礼物,结束位置在棋盘的右下角。从棋盘的左上角移动到右下角的时候的,每次他只能向下或向右移动一步,并拿走对应棋盘上的礼物,但是拿到的所有的礼物的价值之和不大于一个限定值limit,请设计一个算法请实现,使其能够获得不超过限制值limit的最大价值的礼物。

思路

1. 在棋盘问题的基础上加了一个限制, 礼物数不能超过 limit

2. 这个限制使得状态转移方程需要进行一下变形

3. dp[i][j][k] 表示 第 (i,j) 个格子上限制最大价值为 k 时能够获得的最大价值

dp[i][j][k] = max(dp[i][j-1][k-matrix[i][j]], dp[i-1][j][k-matrix[i][j]]) + matrix[i][j]

4. 初始化时需要设置为 负无穷, 表示没有线路能够在不超过 limit 的情况下得到 (i,j)

代码

#include <iostream>
#include <stdio.h>
#include <memory.h>
using namespace std;const int INF = 10005;
int dp[10010];
int money[110];void dodp(int n) {memset(dp, 0x80, sizeof(dp));dp[0] = 0;for(int i = 0; i < n; i ++) {for(int v = INF; v >= 0; v --) {if(v >= money[i])dp[v] = max(dp[v-money[i]]+money[i], dp[v]);}}for(int i = 0; i < INF; i++) {if(dp[i] < 0) {cout << i << endl;    break;}}
}int main() {int n;while(scanf("%d", &n) != EOF) {for(int i = 0; i < n; i ++)scanf("%d", money+i);dodp(n);}return 0;
}

转载于:https://www.cnblogs.com/xinsheng/p/3580212.html

九度 1532:棋盘寻宝扩展(背包方案统计)相关推荐

  1. 动态规划 背包问题小结 0-1背包(采药 九度第101题) 完全背包(Piggy-Bank POJ 1384) 多重背包(珍惜现在,感恩生活 九度第103题)

    本小结介绍0-1背包.完全背包以及多重背包问题 记忆要点: 0-1背包:二维数组情况下,顺序遍历体积或者倒序均可以                降维情况下需倒序遍历体积 完全背包:数组降维+顺序遍历 ...

  2. 九度 1531:货币面值(01背包)

    题目描述: 小虎是游戏中的一个国王,在他管理的国家中发行了很多不同面额的纸币,用这些纸币进行任意的组合可以在游戏中购买各种装备来提升自己.有一天,他突然很想知道这些纸币的组合不能表示的最小面额是多少, ...

  3. 九度 1209:最小邮票数(多重背包)

    题目描述: 有若干张邮票,要求从中选取最少的邮票张数凑成一个给定的总值     如,有1分,3分,3分,3分,4分五张邮票,要求凑成10分,则使用3张邮票:3分.3分.4分即可 思路 1. 朴素背包问 ...

  4. 九度 1462:两船载物问题(01背包)

    题目描述: 给定n个物品的重量和两艘载重量分别为c1和c2的船,问能否用这两艘船装下所有的物品. 思路 1. 朴素背包问题 2. 有几个细节要好好把握 (1) 在读入物品重量时顺带统计物品的最大值和总 ...

  5. Piggy-Bank - 九度教程第 102 题

    Piggy-Bank - 九度教程第 102 题 题目 时间限制:1 秒 内存限制:32 兆 特殊判题:否 题目描述: Before ACM can do anything, a budget mus ...

  6. 打不开磁盘配额linux,九度OJ 1455 珍惜现在,感恩生活 -- 动态规划(背包问题)...

    题目描述: 为了挽救灾区同胞的生命,心系灾区同胞的你准备自己采购一些粮食支援灾区,现在假设你一共有资金n元,而市场有m种大米,每种大米都是袋装产品,其价格不等,并且只能整袋购买.请问:你用有限的资金最 ...

  7. 非常可乐(九度 OJ 1457)

    非常可乐(九度 OJ 1457) 时间限制:1 秒 内存限制:32 兆 特殊判题:否 1.题目描述: 大家一定觉的运动以后喝可乐是一件很惬意的事情,但是 seeyou 却不这么认为.因为每次当 see ...

  8. 九度 1408 寻找表达式 (中缀转后缀)

    题目描述 总结 1. '_' 运算符不是 a*10 + b, 而是 a*(10 or 100) + b 2. char * 与 string 的相互转化 char* = string.c_str() ...

  9. 剑指Offer - 九度1511 - 从尾到头打印链表

    剑指Offer - 九度1511 - 从尾到头打印链表2013-11-29 21:08 题目描述: 输入一个链表,从尾到头打印链表每个节点的值. 输入: 每个输入文件仅包含一组测试样例. 每一组测试案 ...

  10. 九度 1545:奇怪的连通图

    题目描述 总结 1. 用 BFS 实现 Dijkstra. 要点是, visited 后标记, 把某个点从优先队列取出后再标记 代码 未通过九度测试 RE /** source.cpp** Creat ...

最新文章

  1. html标签库jar包,struts2的s标签库jar包
  2. 汇编指令 DUP指令
  3. dfs遍历和bfs遍历python_广度优先遍历(BFS)和深度优先遍历(DFS)
  4. 【Qt】QModbusDeviceIdentification类
  5. flume高可用-failover-配置文件编写
  6. std string与线程安全_C++标准库多线程简介Part1
  7. lm723大电流可调电源电路图_高稳定大电流直流可调稳压电路
  8. c语言运行后出现xt073,2017年北京工业大学城市交通学院894C语言与数据结构之C程序设计考研强化模拟题...
  9. Android开发笔记(十)常用的图片加工操作
  10. java sender_Spring Boot用JavaMailSender发送邮件方法
  11. Day1通信基本概念 通信系统模型 通信系统分类与通信方式
  12. Web开发之MVC模式实现学生课程信息管理系统
  13. Javaweb在线视频学习网站的设计与实现
  14. 如何将网页保存保存为PDF格式?或者打印网页
  15. 成考计算机专业难不难,成人高考计算机类难度大吗(成人大学难度)
  16. 苹果零日漏洞利用市售800万欧元
  17. 解析mac苹果电脑与Windows电脑的区别
  18. 2020年中国程序员薪资和生活现状调查报告
  19. 独作论文登数学顶刊,浙大女神校友再被提起:32岁在贵州深山投稿,一家出两位院士...
  20. Several ports (8005, 8080) required by Tomcat v9.0 Server at localhost are already in use

热门文章

  1. 钉钉人脸识别,戴个太阳帽就找不到人脸
  2. html空心字体怎么设置,Word或者WPS如何设置阴影空心的特大字体?
  3. hdfs文件分块 java_Hadoop(八)Java程序访问HDFS集群中数据块与查看文件系统
  4. python生成序列_python如何生成随机序列?
  5. 微信抢红包的方案_微信社群运营应该怎么运作?
  6. python treeview控件使用详解_python绘图工具turtle库的使用详解
  7. view 判断显示 微信_微信小程序WXML页面常用语法(讲解+示例)
  8. 反汇编IDA WinDbg
  9. iOS工作中的经验总结—马甲包审核以及常见审核问题!!!(干货)
  10. 在模拟器中添加模拟尺寸