挖金矿问题(c++求解)

2023-11-19

n个金矿,共有w个工人(目前可以用的人数),F收益
F(n,w)


//递推函数 
//n个金矿,共有w个工人(目前可以用的人数),F收益
//F(n,w)

//那么该问题的边界值如下:
//
//当w=0且w<p[0],则F(1,w)=0     当目前人数为0,且小于第一个矿的所需工人数目,此时获益为0 
//当w=0且w>p[0],则F(1,w)=g[0]	当目前人数为0,但大于第一个矿的所需工人数目,此时获益为第一个矿产数 

#include<bits/stdc++.h>
using namespace std;

int getVal(int n, int w, int g[], int p[])
{
	int res[n + 1][w + 1];
	for(int i = 0; i <= n; i++)
	{
		for(int j = 0; j <= w; j++)
		{
			res[i][j] = 0;
		}
	}
	for(int i = 0; i <= n; i++)
	{
		for(int j = 0; j <= w; j++)
		{
			cout<<res[i][j]<<"  ";
		}
		cout<<endl;
	}
	for (int i = 1; i <= n; i++) 
	{
		for (int j = 1; j <= w; j++) 
		{
			//当当前人数不满足于挖当前矿,为什么pg都要i-1,因为它们是从0开始存储的 
			if (j < p[i-1])
				res[i][j] = res[i-1][j];
			else
				res[i][j] = max(res[i-1][j],res[i-1][j-p[i-1]]+g[i-1]);
		}
	}
	
	for(int i = 0; i <= n; i++)
	{
		for(int j = 0; j <= w; j++)
		{
			cout<<res[i][j]<<"  ";
		}
		cout<<endl;
	}
	
	return res[n][w];
}

int main()
{
	int g[5] = {400, 500, 200, 300, 350};
	int p[5] = {5, 5, 3, 4, 3};
	int ans = getVal(5, 10, g, p); 
	cout<<ans;
	return 0;	
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

挖金矿问题(c++求解) 的相关文章

随机推荐

  • 形象易懂讲解算法II——压缩感知

    形象易懂讲解算法II 压缩感知
  • Qt5.12.2交叉编译并移植程序到ARM过程记录

    交叉编译 在系统A中编译出在要系统B中运行的环境 程序 编译工具 x9 gcc linaro 5 5 0 2017 10 x86 64 arm linux gnueabihf 1 将编译工具拷贝到 opt 文件夹 2 下载Qt源代码 解压
  • 【云原生】Docker 详解(三):Docker 镜像管理基础

    Docker 详解 三 Docker 镜像管理基础 1 镜像的概念 镜像可以理解为应用程序的集装箱 而 Docker 用来装卸集装箱 Docker 镜像含有启动容器所需要的文件系统及其内容 因此 其用于创建并启动容器 Docker 镜像采用
  • 数据结构算法—邻接表存储的无向图求连通分量个数

    数据结构算法 邻接表存储的无向图求连通分量个数 邻接表存储结构 typedef struct ArcNode int adjvex 边指向的顶点 struct ArcNode nextarc 下一条边的指针 ArcNode typedef
  • 感谢我的python老师

    Python自动化开发 金角大王版 http www cnblogs com alex3714 articles 5885096 html 转载于 https www cnblogs com tianqizhi p 8385650 html
  • canvas 流程图bug

    问题一 在当前年份点击选择没有取消调选择在去选择年份是会出bug 修改 canvas 添加点击事件后状态恢复到初始值 修改完 效果图
  • Swagger--基础--02--集成Springboot

    Swagger 基础 02 集成Springboot 代码位置 https gitee com DanShenGuiZu learnDemo tree master swagger learn 1 代码结构 2 代码 User packag
  • vue中一个项目里兼容移动端和pc端

    话不多说 上代码 先来看一下我的文件 路由文件 index js import Vue from vue import Router from vue router Vue use Router export default new Rou
  • 【实践经验】PPT导出SVG格式通过Inkscape转化为pdf

    目录 背景 方案调研 Inkspace 配置 将svg转为pdf 背景 在写论文过程中不可避免需要作图 常用的工具就是PPT 但是在导出图片的过程中通常会遇到一个问题 图片导出为png格式不够清晰 放大后比较模糊影响观感 那么有没有解决方案
  • AcWing4118. 狗和猫

    输入样例1 3 6 10 4 0 CCDCDD 4 1 2 0 CCCC 4 2 1 0 DCCD 输出样例1 Case 1 YES Case 2 YES Case 3 NO 样例1解释 在 Case 1 中 一共有 1010 份狗粮和 4
  • VTK环境安装教程

    安装前依赖环境 CMake VS2019 VTK压缩包 8 2 0即可 build过程 第一次分析完 找到下图中选中项 勾选Configure 解释勾选项 BUILD EXAMPLES 生成一些vtk官方的examples 帮助理解学习 当
  • SQL 后计算的利器 SPL

    目录 专业的结构化数据对象 强大的结构化数据计算能力 灵活的流程控制能力 优化体系结构 SPL资料 现代应用开发中 通常只用SQL实现简单的数据存取动作 而主要的计算过程和业务逻辑直接在应用程序中实现 主要原因在于 过于复杂的SQL很难调试
  • Python JS逆向篇(四)

    Python JS逆向篇 四 找到参数加密位置 跟进window asrsea函数 结果 扣取的js代码 扩展 逆向主题 某易云评论数据 请求时的加密参数 注 文章所涉及内容只做学习参考交流 不做除此之外的任何其它用途 找到参数加密位置 我
  • 解析XML文件时的嵌套异常SAXParseException

    解析XML文件时的嵌套异常SAXParseException 引言 XML 可扩展标记语言 是一种常用的数据格式 用于存储和传输结构化数据 在开发过程中 我们经常需要解析XML文件来获取其中的数据 然而 XML解析过程中可能会遇到各种异常情
  • 关于利用Qt编写应用程序的帮助文档

    转载请注明出处 关于利用Qt编写应用程序的帮助文档 首先推荐Qt官网的example 官网的例子讲的很细致很全面 不过官网的例子全是英文的 百度文库里有对这个例子的翻译 我也看了一下 感觉还不如去看英文的 好的言归正传 讲一下大概的步骤 1
  • node快速创建一个工程项目

    1 安装express npm install g express 2 新建一个工程 指定使用ejs模板引擎 express e 文件名 3 安装需要的模块 cd 文件名 npm install 4 启动 SET DEBUG 文件名 npm
  • Oracle学习(14)【DBA向】:利用DBCA创建Oracle数据库

    数据库管理任务 DBA 1 评测数据库服务器硬件 2 安装Oracle数据库软件 3 规划数据库 4 创建并且打开数据库 5 数据库备份 6 注册用户 7 实现数据库计划 8 全库备份 9 调整数据库性能 数据库规划 作为一名DBA 你必须
  • mac m1 安装 protobuf

    mac m1各种踩坑中 一 背景 mac m1 机器上使用golang grpc 二 安装流程 1 安装protobuf 注 已经安装了brew brew install protobuf 2 安装go的支持 go install goog
  • 用 Python 打造 AIGC 的「操作系统」

    carefree0910 carefree drawboard Infinite Drawboard in Python github com https github com carefree0910 carefree drawboard
  • 挖金矿问题(c++求解)

    n个金矿 共有w个工人 目前可以用的人数 F收益 F n w 递推函数 n个金矿 共有w个工人 目前可以用的人数 F收益 F n w 那么该问题的边界值如下 当w 0且w