九度OJ 1455 珍惜现在,感恩生活 -- 动态规划(背包问题)

ZUST 程序设计算法竞赛高级【1】题解报告 3.13 题解报告1001 寒冰王座题目题解代码1002 地震题目题解代码 1001 寒冰王座 题目 Problem Description 不死族的巫妖王发工资拉,死亡骑士拿到一张N元的钞票(记住,只有一张钞票),为了防止自己在战斗中频繁的死掉,他决定给自己买一些道具,于是他来到了地精商店前. 死亡骑士:“我要买道具!” 地精商人:“我们这里有三种道具,血瓶150块一个,魔法药200块一个,无敌... 阅读详情

题目地址:http://ac.jobdu.com/problem.php?pid=1455

题目描述:

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

输入:

输入数据首先包含一个正整数C,表示有C组测试用例,每组测试用例的第一行是两个整数n和m(1<=n<=100, 1<=m<=100),分别表示经费的金额和大米的种类,然后是m行数据,每行包含3个数p,h和c(1<=p<=20,1&lt;=h<=200,1<=c<=20),分别表示每袋的价格、每袋的重量以及对应种类大米的袋数。

输出:

对于每组测试数据,请输出能够购买大米的最多重量,你可以假设经费买不光所有的大米,并且经费你可以不用完。每个实例的输出占一行。

样例输入:
1
8 2
2 100 4
4 100 2
样例输出:
400
#include <stdio.h>
 
typedef struct rice{
    int price;
    int weight;
}Rice;
 
int max (int a, int b){
    return (a > b) ? a : b;
}
 
int main (void){
    int C, m, n;
    Rice ric[2001];
    int dp[101];
    int i, j;
    int price, weight, num, cnt, c;
 
    scanf ("%d", &C);
    while (C-- != 0){
        scanf ("%d%d", &n, &m);
        cnt = 0;
        for (i=1; i<=m; ++i){
            scanf ("%d%d%d", &price, &weight, &num);
            c = 1;
            while (num -c > 0){
                num -= c;
                ric[++cnt].price = price * c;
                ric[cnt].weight = weight * c;
                c *= 2;
            }
            ric[++cnt].price = price * num;
            ric[cnt].weight = weight * num;
        }
        for (i=0; i<=n; ++i)
            dp[i] = 0;
        for (i=1; i<=cnt; ++i){
            for (j=n; j>=ric[i].price; --j){
                dp[j] = max (dp[j], dp[j-ric[i].price] + ric[i].weight);
            }
        }
        printf ("%d\n", dp[n]);
    }
 
    return 0;
}

参考资料: 多重背包问题

c++贪心题目 Input 输入数据首先包含一个正整数C,表示有C组测试用例,每组测试用例的第一行是两个整数n和m(0 < n <= 1000, 0 < m <= 1000 ),分别表示经费的金额和大米的种类,然后是m行数据,每行包含2个整数p和h(1 <= p <= 25,1 <= h <= 100),分别表示单价和对应大米的重量。 Output ... 阅读详情

相关推荐

STM32N6:MCU+NPU架构如何重塑边缘AI部署新范式

STM32N6作为业界首款MCU+NPU架构的通用微控制器,通过集成600 GOPS算力的NPU与800MHz Cortex-M55内核,实现了边缘AI部署的革命性突破。该方案在工业视觉和智能家居等场景中,以超低功耗和成本提供实时AI处理能力,性能较传统MCU提升超100倍,重塑了边缘智能设备的设计范式。

g8f9d0s1a2的博客 1291

【HDU2191】多重背包

Input 输入数据首先包含一个正整数C,表示有C组测试用例,每组测试用例的第一行是两个整数n和m(1<=n<=100, 1<=m<=100),分别表示经费的金额和大米的种类,然后是m行数据,每行包含3个数p,h和c(1<=p<=20,1<=h<=200,1<=c<=20),分别表示每袋的价格、每袋的重量以及对应种类大米的袋数。 Output 对于每组测试数据,请输出能够购买大米的最多重量,你可以假设经费买不光所有的大米,并且经费你可以不用完。每

ha 423

Star CCM+ 实战:旋风分离器网格加密策略与湍流模拟优化

本文针对Star CCM+中旋风分离器模拟精度不足的常见问题,深入剖析了网格质量的关键影响。文章重点介绍了通过局部网格加密策略,精准优化旋流核心区与入口区域的网格密度,从而在保证计算效率的前提下,显著提升湍流模拟的准确性与流场细节的捕捉能力,为工程实践提供了一套有效的优化方案。

water的专栏 535

hdu 2191多重背包

Input  输入数据首先包含一个正整数C,表示有C组测试用例,每组测试用例的第一行是两个整数n和m(1&lt;=n&lt;=100, 1&lt;=m&lt;=100),分别表示经费的金额和大米的种类,然后是m行数据,每行包含3个数p,h和c(1&lt;=p&lt;=20,1&lt;=h&lt;=200,1&lt;=c&lt;=20),分别表示每袋的价格、每袋的重量以及对应种类大米的袋数。 Ou...

qq_40859951的博客 665

用UDP协议在dos命令行里模拟一个聊天程序

/* 需求: 在dos命令行里模拟一个聊天程序 有收数据的部分,和发数据的部分,这两部分需要同时执行。 那就需要用到多线程技术。 一个线程控制收,一个线程控制发。 */ import java.io.*; import java.net.*; class C

s_x_x的记录 1955

UG NX与PLC-1500的在环虚拟测试

TIA、PLCSIM、NetToPLCsim、KEPServerEX以及UG NX的在环虚拟测试

lvtlvtlvtlvt的博客 4219

蓝桥java_JAVA蓝桥国赛备战

2019.5.16有一堆牛要过河,河的长度是l,河中间有n个石头,牛只能踩着石头过河,问去掉m个石头后(去掉这m个石头的方式是随机的)的每种情况牛能走的石头间距最小值中,最大的那一个是多少。输入:25 5 2//河的长度,一共有几块石头,去掉m块2 14 11 21 17//这n块石头的位置输出:4思路:二分距离 check函数注意写法1 importjava.util.Arrays;2 impo...

weixin_36444910的博客 336

在后端设计中,GDSLL,LEF,DEF,SDF,SPEF,SDC各代表什么意思?前端和中端流程中,SVF,SAIF又代表什么意思?

在后端设计中,GDSLL,LEF,DEF,SDF,SPEF,SDC区别?前端和中端流程中,SVF,SAIF代表什么意思?

weixin_43274923的博客 1万+

解题思考B1还是最小公倍数

题目描述 Problem Description 2个正整数的最小公倍数,大家应该都知道怎么求了,比如,10和14的最小公倍数就是70。 现在增加点难度,如果给你多个正整数,你还会计算最小公倍数吗? 比如,5、7、15这三个数的最小公倍数就是105. Input 输入数据第一行是一个正整数C(C<10),表示有C组测试用例。 接下来C行,每行是一组测试数据。 每组数据首先是一个正整数N(1<N<30),表示本组数据有N个正整数,然后接着是N个正整数。 Output 请输出每组数据

pied_piperG的博客 607

Qt + windows + Linux+QtInstallerFramework打包教程

本文介绍了使用Qt Installer Framework在Windows和Linux系统下打包Qt应用程序的完整教程。Windows部分详细说明了从下载安装框架、配置环境变量、生成release版本,到创建安装包目录结构和修改配置文件的完整流程。Linux部分则重点讲解了环境变量设置、桌面应用配置(.desktop文件)以及两种打包方案:一种使用linuxdeployqt生成AppImage文件,另一种采用类似Windows的安装包方式。教程提供了关键配置文件(config.xml、package.xml

Qt历险记,专注Qt技术,三年医疗设备研发经验,1年机器视觉研发经验,半年柔性传感研发经验。 516

Vivado报错-4 [Routed 35-3424] SLL Assignment failed ILP VU19P

Vivado报错[Routed 35-3424] SLL Assignment failed ILP VU19P

weixin_39896700的博客 1408

3.算法分析与排序

A - SORT AGAIN HDU - 2523 (哈希) 给你N个整数,x1,x2…xn,任取两个整数组合得到|xi-xj|,(0<i,j<=N,i!=j)。 现在请你计算第K大的组合数是哪个(一个组合数为第K大是指有K-1个不同的组合数小于它)。 Input 输入数据首先包含一个正整数C,表示包含C组测试用例. 每组测试数据的第一行包含两个整数N,K。(1<N<=1000,0<K<=2000) 接下去一行包含N个整数,代表x1,x2…xn。(0<=xi<

qq_52008247的博客 382

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

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

题目描述:为了挽救灾区同胞的生命,心系灾区同胞的你准备自己采购一些粮食支援灾区,现在假设你一共有资金n元,而市场有m种大米,每种大米都是袋装产品,其价格不等,并且只能整袋购买。请问:你用有限的资金最多能采购多少公斤粮食呢?输入:输入数据首先包含一个正整数C,表示有C组测试用例,每组测试用例的第一行是两个整数n和m(1<=n<=100, 1<=m<=100),分别表示经费的金...

weixin_33765959的博客 183

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

九度OJ 1455: 珍惜现在,感恩生活

题目描述: 为了挽救灾区同胞的生命,心系灾区同胞的你准备自己采购一些粮食支援灾区,现在假设你一共有资金n元,而市场有m种大米,每种大米都是袋装产品,其价格不等,并且只能整袋购买。请问:你用有限的资金最多能采购多少公斤粮食呢? 输入: 输入数据首先包含一个正整数C,表示有C组测试用例,每组测试用例的第一行是两个整数n和m(1 输出: 对于每组测试数据,请输出能够

superlc320的专栏 691

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

九度oj 题目1455:珍惜现在,感恩生活

题目描述: 为了挽救灾区同胞的生命,心系灾区同胞的你准备自己采购一些粮食支援灾区,现在假设你一共有资金n元,而市场有m种大米,每种大米都是袋装产品,其价格不等,并且只能整袋购买。请问:你用有限的资金最多能采购多少公斤粮食呢? 输入: 输入数据首先包含一个正整数C,表示有C组测试用例,每组测试用例的第一行是两个整数n和m(1<=n<=100, 1<=m<=10...

aling1199的博客 131

九度OJ 1455 珍惜现在,感恩生活 (多重背包)

题目描述: 为了挽救灾区同胞的生命,心系灾区同胞的你准备自己采购一些粮食支援灾区,现在假设你一共有资金n元,而市场有m种大米,每种大米都是袋装产品,其价格不等,并且只能整袋购买。请问:你用有限的资金最多能采购多少公斤粮食呢? 输入: 输入数据首先包含一个正整数C,表示有C组测试用例,每组测试用例的第一行是两个整数n和m(1 输出: 对于每组测试数据,请输出能够

ronixy的专栏 840

九度OJ-1454,1455-Piggy-Bank,珍惜现在,感恩生活

http://ac.jobdu.com/problem.php?pid=1454 http://ac.jobdu.com/problem.php?pid=1455

Keep coding 634

多重背包+单调队列优化

Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 48043 Accepted Submission(s): 20489 Problem Description 急!灾区的食物依然短缺! 为了挽救灾区同胞的生命,心系灾区同胞的你准备自己采购一些粮食支援灾区,现在假设你一共有资金n元,而市场有m种大米,每种大米都是袋装产品,其价格不等,并且只能

在人间贩卖声音 234

HDU - 2191

不断进取、努力。  同样,我们也要感谢痛苦与艰辛带给我们的财富~  Input输入数据首先包含一个正整数C,表示有C组测试用例,每组测试用例的第一行是两个整数n和m(1 Output对于每组测试数据,请输出能够购买大米的最多重量,你可以假设经费买不光所有的大米,并且经费你可以不用完。每个实例的输出占一行。 Sample Input 1 8 2 2 100 4 4 10

qq_35916858的博客 555

多重背包——(HDU-2191)

题意: 为了挽救灾区同胞的生命,心系灾区同胞的你准备自己采购一些粮食支援灾区,现在假设你一共有资金n元,而市场有m种大米,每种大米都是袋装产品,其价格不等,并且只能整袋购买。 请问:你用有限的资金最多能采购多少公斤粮食呢? Input 输入数据首先包含一个正整数C,表示有C组测试用例,每组测试用例的第一行是两个整数n和m(1   Output 对于每组测试

FeBr2的博客 691

动态规划——背包基础题

1414: 集装箱装载时间限制: 1 Sec  内存限制: 128 MB提交: 21  解决: 13[提交][状态][讨论版]题目描述有一批共n个集装箱要装上艘载重量为c的轮船,其中集装箱i的重量为wi。找出一种最优装载方案,将轮船尽可能装满,即在装载体积不受限制的情况下,将尽可能重的集装箱装上轮船。输入第一行有2个正整数n和c。n是集装箱数,c是轮船的载重量。第2行中有n个正整数,表示集装箱的重...

qq_36914923的博客 928

九度OJ 教程103 广搜解决《珍惜现在,感恩生活》之内存超

内存超 http://ac.jobdu.com/problem.php?cid=1040&pid=102 #include #include #define MAXS 105 #include; using namespace std; typedef struct E{ int weight; int rest_money; int nrest[102];/

DNA的DFA 759
上一篇: 九度OJ 1453 Greedy Tino -- 动态规划
下一篇: 背包问题 -- 动态规划
JDPlus
博客等级 码龄15年 221粉丝 125原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值