POJ 1276 多重背包

POJ1276 Cash Machine详解(多重背包与二进制优化) 我的第二篇题解hhh 虽然网上可以搜到的该题的题解并不少,而且都能确定出是“多重背包”的解法。但是对于“背包”和“物品”的描述,我感觉交待的并不是很清楚,至少对于像我这样的初学者来说,是不容易理解的。 这篇博客可以帮助你更好的理解这个题目,但是你必须有多重背包的基础。 ———————————————————————————————————— 原题 POJ1276 Cash Machine 题意 有... 阅读详情

转化为背包。。

此题包含了01背包和完全背包

当然只用01背包也是可以的

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;

const int maxn=100005;
int dp[maxn];
int cash,n;

void complete_pack(int v)
{
	int i;
	for(i=v;i<=cash;i++)
	{
		dp[i]=max(dp[i],dp[i-v]+v);
	}
}

void zero_pack(int v)
{
	int i;
	for(i=cash;i>=v;i--)
	{
		dp[i]=max(dp[i],dp[i-v]+v);
	}
}

void multiple_pack(int v,int nv)
{
	if(v*nv>=cash)
	{
		complete_pack(v);
	}
	else
	{
		int i;
		for(i=1;nv>0;i<<=1)
		{
			if(i>nv)
			{
				i=nv;
			}
			nv-=i;
			zero_pack(i*v);
		}
	}
}

int main()
{
	while(~scanf("%d%d",&cash,&n))
	{
		int v,nv;
		memset(dp,0,sizeof(dp));
		while(n--)
		{
			scanf("%d%d",&nv,&v);
			multiple_pack(v,nv);
		}
		printf("%d\n",dp[cash]);
	}
	return 0;
}



poj 1276(多重背包) 我的英语差的不只一点点啊,题意看不完全懂,直接看别人的解题报告才把题意弄清(我很菜),但是感觉这题完全就是完全背包基础知识,只要将cost视为与weight完全相等就ok。 #include #include #include using namespace std; #define N 11 int dp[100010]; int num[N]; int a[N]; int V,n; inli 阅读详情

相关推荐

POJ 1276 多重背包+模板

题目 Cash Machine Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 31788   Accepted: 11460 Description A Bank plans to install a machine for cash withdra

Kiritow的学园 553

多重背包——POJ 1276

POJ 1276 Cash Machine /* poj 1276 多重背包题目,cost 与 value 是同一个 */ #include using namespace std; int inline Max(int a,int b) { if(a>b) return a; return b; } int W[12],V[12],dp[100010]; int main()

Kay's space 1662

POJ 1276 解题报告

百题纪念下。 这道题是多重背包问题。又回顾了下崔添翼大神的背包九讲。当然最终还是参考了discuss上面一位同学的实现:http://poj.org/showmessage?message_id=340485。他的代码确实非常清楚。 1276 Accepted 524K 32MS C++ 1561B /* ID: thestor1 LANG: C++

thestoryofsnow的专栏 1737

poj1276(多重背包)

poj1276(多重背包) 1 #include <cstdio> 2 #include <cstring> 3 4 const int MAXN = 1e5+10; 5 6 bool dp[MAXN]; 7...

banggui5839的博客 192

用Blender给ArduPilot无人船编队设计灯光秀:从建模到飞行的保姆级教程

本文详细介绍了如何利用Blender和ArduPilot为无人船编队设计灯光秀的全流程技术方案。从3D动画设计、坐标转换、数据导出到ArduPilot飞控配置和灯光控制,提供了一套完整的保姆级教程,帮助开发者实现水面灯光编队表演。

weixin_29213525的博客 387

解锁Cherry Studio高阶玩法:用MCP实现自动化测试与数据爬取

本文深入探讨了如何利用MCP协议与Cherry Studio结合,实现自动化测试与数据爬取的高阶应用。通过Playwright等工具的MCP集成方案,详细解析了自动化测试流水线构建和智能爬虫系统开发的关键技术,显著提升工程效率和系统适应性。

defi6farmer的博客 275

【多重背包】 二进制优化 poj1276

题目来源:poj1276 思路: 多重背包,把总金额看作是背包的容量。 简单地介绍一下二进制优化: 假设数量是8,则可以把它看成是1,2,4,1的组合,即这4个数的组合包括了1-8的所有取值情况。这是为什么呢?将它们转换成二进制再观察一下: 1:1 2:10 4:100 1:1 二进制都只有0,1。所以1,2,4已经能够组成1-7的所有情况,但是这样还不够 还要再加一个1 才能凑成8 或许有人...

圣托里尼的日落啊~的博客 317

【OpenCV3】cv::compare()使用详解

cv::compare()主要用于两个图像之间进行逐像素的比较,并输出比较的结果。具体用法如下: cv::compare() bool cv::compare( cv::InputArray src1, // 输入数组1 cv::InputArray src2, // 输入数组2 cv::OutputArray dst, // 输出数组 int cmpop // 比较操作子,见下表 ...

guduruyu的专栏 9762

POJ1276 多重背包DP 生命不息优化不止

POJ1276 多重背包DP题这道题弄了一个早上…一看题目是多重背包题直接敲了一个三重for循环,无限TLE,下面附上好几种解法。DescriptionA Bank plans to install a machine for cash withdrawal. The machine is able to deliver appropriate @ bills for a requested cas

围巾的ACM博客 589

57. SAP UI5 应用基于 OData 注解的 Smart Field 使用方法学习

所谓 SAP UI5 Smart Field,顾名思义,是一类比较`智能`的控件,这类控件同 SAP UI5 传统的控件不同,会根据 SAP UI5 应用程序连接的 OData 服务中元数据里提供的注解(`annotations`),在运行时动态生成底层的 SAP UI5 控件。...

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 2774

主题035:计算流体力学(CFD)

计算流体力学(Computational Fluid Dynamics, CFD)是利用数值方法求解流体流动、传热传质等问题的学科。CFD已成为化学反应工程中反应器设计和优化的重要工具。∂ρ∂t+∇⋅(ρu)=0 \frac{\partial \rho}{\partial t} + \nabla \cdot (\rho \mathbf{u}) = 0 ∂t∂ρ​+∇⋅(ρu)=0对于不可压缩流动:∇⋅u=0 \nabla \cdot \mathbf{u} = 0 ∇⋅u=0动量方程:∂(ρu)∂t+∇⋅(ρ

kkchenjj的博客 269

POJ 1276(多重背包)

题目链接:http://poj.org/problem?id=1276 一道很有意思的题目。 做完这道题后发现了很多神奇的东西,原来多重背包问题还可以转化成完全背包问题。 另外,也更多理解了动态规划,稍微明白了一点动归和搜索的差别,还需要继续努力。 别人的解题报告:http://blog.youkuaiyun.com/lyy289065406/article/details/6648102

To be excellent! 362

C++软件调试与异常排查从入门到精通专栏介绍与文章汇总

根据近几年排查软件异常的实践与经验,系统地讲解了C++软件异常常见原因与常用排查方法,以图文并茂的方式给出具体的分析实例,带领大家逐步掌握C++软件异常排查的相关技术与要领。

dvlinker的技术专栏 23万+

POJ 1276 Cash Machine(多重背包)

题目链接: POJ 1276 Cash Machine 题意: 有n种货币,每种货币的面额是val[i],数量是num[i],问由这些货币组成不超过cash的最大金额是多少? 分析: 多重背包。//1168K 0MS #include <cstdio> #include <cstring> #include <cmath> #include <algorithm> using namesp

ramay7 400

PyTorch 面试题及详细答案120题(54-70)-- 模型训练与评估

本文介绍了PyTorch模型训练的基本流程和核心概念。主要内容包括: 模型训练基本流程:通过代码示例展示了数据准备、模型定义、损失函数和优化器选择、训练循环(前向传播、反向传播、参数更新)的完整过程,并包含验证集评估的实现。 训练过程中的关键概念: Epoch:完整遍历一次训练集 Batch:将数据分成小批次 Iteration:一个Batch的参数更新过程 三者关系:1 Epoch = N/B Batch = N/B Iteration(N为样本数,B为batch_size) PyTorch数据加载机制:

大剑师兰特的GIS世界 490

YOLOv13改进策略【Head】| 引入RT-DETR中的RTDETRDecoder,替换检测头

本文记录的是基于RTDETRDecoder模块的YOLOv13目标检测改进方法研究。RT-DETR的模块通过,能为解码器提供高质量的初始,从而。相比v13原始的检测头,RT-DETR能,替换后能够更好的提高模型性能。

Limiiiing的博客 434

POJ1276-Cash Machine(多重背包)

题目链接:poj挂了以后补上 Description A Bank plans to install a machine for cash withdrawal. The machine is able to deliver appropriate @ bills for a requested cash amount. The machine uses exactly N dis

Yorozuya 564

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

POJ--1276:多重背包

/*  * 多重背包问题*  *POJ_1276:Cash Machine* */ #include void change(int *f,int v,int cash) {   int j=cash;   int m;   while(j>=v)   {    m=j-v;    if(f[j]    {     f[j]=f[m]+v;    }    j--

324

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

poj1276——dp,多重背包

poj1276——dp,多重背包 Cash Machine Time Limit:1000MS Memory Limit:10000K Total Submissions:28826 Accepted:10310 Description A Bank plans to install a machine for cash w...

weixin_30794851的博客 136

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

多重背包的两种解决方法(poj1276)

多重背包是指装入背包的若干见物品种,可以拿的数量有上限。 第一种就是二进制优化,转换成01背包,例如一件物品可以拿26件,每一件的权值是w,26可以写成(1+2+4+8)+11,所以就把这种物品分解成权重为w,2 w,4w,8w,11w的五种物品,这五种物品组合,一定能组成小于等于26的任意一个数,这样就把有26件的一种物品换成了五种各有一件的物品,用01背包就能解决了。 poj

emmmmmm 2741

POJ 1276 Cash Machine 多重背包

题目:http://poj.org/problem?id=1276 英语实在是硬伤啊,只好去看了下别人的翻译,题意就是说:用不同面值的钱凑出与给定的钱不超过且最接近的钱。 读完瞬间发现是楼教主的多重背包问题,第一次交上忘了一个判断,WA一次,第二次就A了,很轻松惬意。。 1 #include <stdio.h> 2 #include <string.h&gt...

weixin_30673611的博客 82

POJ 1276 Cash Machine(多重背包)

POJ 1276 Cash Machine(多重背包) http://poj.org/problem?id=1276 题意: 有n种货币, 其面值和数量分别为val[i]和num[i]. 现在给出一个m值, 问你由上面的货币能构成的最大的且不超过m的金额是多少? 分析: 明显的多重背包问题. 令dp[i][j]==x表示用前i种货币能构成的<=j面值的金钱的最大值为x. 初始化: dp为全0. 我们对第i种物品进行分情况处理:

code 1064

poj1276Cash Machine ——多重背包二进制优化

原题链接:poj1276 cash machineLanguage:Default Cash Machine Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 36835 Accepted: 13373 DescriptionA Bank plans to install a machine for cash withd

Lngxling的博客 485

POJ1276 多重背包

Cash Machine Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 36959   Accepted: 13408 Description A Bank plans to install a machine for cash withdrawal. The m

ayu的博客 346

POJ 1276 Cash Machine(多重背包的二进制优化)

题目网址:http://poj.org/problem?id=1276 思路: 很明显是多重背包,把总金额看作是背包的容量。 刚开始是想把单个金额当做一个物品,用三层循环来 转换成01背包来做。T了…… 后面学习了 用二进制来处理数据。 简单地介绍一下二进制优化:✧(≖ ◡ ≖✿) 假设数量是8,则可以把它看成是1,2,4,1的组合,即这4个数的组合包括了1-8的所有取值情况。...

weixin_30493321的博客 128

POJ - 1276 - Cash Machine(多重背包)

POJ - 1276 - Cash Machine A Bank plans to install a machine for cash withdrawal. The machine is able to deliver appropriate @ bills for a requested cash amount. The machine uses exactly N distinct bi...

Steve·Curcy 348
上一篇: POJ 1050 DP
下一篇: POJ 3169 差分约束系统
MakingMaker
博客等级 码龄15年 6粉丝 108原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值