hdu 2844 Coins(多重背包)

杭电的acm的猜数字题目 刚做的这个题目,感觉还不错,想求个猜数字的题目,1175的 立即下载

题目大意:

        一个人有n种硬币,面值为A1-An,每种硬币的个数为C1-Cn,问可以组成m元以下的不同价值的总数。

解题思路:

        中规中矩的多重背包问题。

代码:

#include <iostream>
#include <stdio.h>
#include <cstring>

using namespace std;

int n,m;
int a[105],c[105],newA[1050],f[100005];
int ans;

int main()
{
    while(true){
        scanf("%d%d",&n,&m);
        if(n == 0 && m == 0) break;
        for(int i = 0; i < n; i ++){
            scanf("%d",&a[i]);
        }
        for(int i = 0; i < n; i ++){
            scanf("%d",&c[i]);
        }
        int pos = 0;
        for(int i = 0; i < n; i ++){
            int temp = 1;
            while(c[i] > temp){
                if(a[i] * temp > m) break;//如果当前组成的面额大于m则停止,因为不可能被用到,直接舍弃
                newA[pos++] = a[i] * temp;
                c[i] -= temp;
                temp *= 2;
            }
            if(c[i] != 0 && a[i] * c[i] <= m){
                newA[pos++] = a[i] * c[i];
            }
        }
        n = pos;
        memset(f,false,sizeof(f));
        f[0] = true;
        for(int i = 0; i < n; i ++){
            for(int j = m; j >= newA[i]; j --){
                f[j] = f[j] || f[j - newA[i]];
            }
        }
        ans = 0;
        for(int j = 1; j <= m; j ++){
            if(f[j]) ans ++;
        }
        printf("%d\n",ans);
    }
    return 0;
}


保姆级教程:用Python+OpenCV搞定Orbbec Gemini深度与彩色流对齐(附完整代码) 本文提供了一份详细的Orbbec Gemini深度与彩色流对齐教程,涵盖从环境配置到完整代码实现的每一步。通过解析深度流对齐原理,对比不同对齐模式,并提供工业级应用中的问题排查方法,帮助开发者快速掌握Orbbec Gemini相机的使用技巧。文章还包含进阶应用如点云生成与三维重建的实战代码。 阅读详情

相关推荐

深入解析Panfrost驱动:Mali-GPU开源驱动的架构与实现

本文深入解析了Panfrost驱动作为Mali-GPU开源驱动的架构与实现。从诞生背景到硬件架构演进,详细介绍了Panfrost如何突破ARM闭源策略,实现全栈支持。文章还探讨了驱动设计中的关键技术挑战与性能优化策略,为开发者提供了实用的编译部署指南和性能调优方法。

weixin_30790841的博客 552

HDU2844(多重背包)

题目大意:给你n个种类的钱和对应的数量,同统计一下从1到m能够凑成的钱有多少个;解题思路:多重背包的题,少了一个类似于重量上限的限制,这里其实就是那个m,每次不断变化的1到m的值就是限制,最后统计下多少dp数组更新过就是能够凑到的,这里不用从1到m枚举上限,直接上限填m,这样在更新完n个种类后m之前由于要到达m必然解决比他小的包,简言之,就是前面的dp已经优化了(你想我们既然都优化到m了,像m-1...

小胡同的诗 597

避坑指南:Allegro 17.2更新封装时遇到的5个典型问题及解决方案(含Symbol报错处理)

本文深度解析Allegro 17.2封装更新过程中的核心机制与常见陷阱。针对“Update Symbols”功能失效、焊盘不匹配、DRC报错、图形层叠错误等5大典型问题,提供从原理分析到实战解决方案的完整指南,帮助用户实现从“更新失败”到“丝滑替换”的平稳过渡。

tgb34567890的博客 1039

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

1.题目链接。首先这个题的意思就是:n种硬币,每种硬币有面值和数量,给你m,让你求从1到m这m个数据,有多少个可以用这些硬币凑出来。 2.我们分析一下这个问题,似乎是一个背包问题,但是这个是让我们求方案数,而不是最大能够装多少之类的。我们还是按照我们之前的DP方程,在最朴素的多重背包问题种,DP[k]代表容量为k的时候我们最多可以装多少东西,和这个问题好像没啥关系。那么现在就有两个解决方案:把这...

YG爱木木 496

电脑版微信多开,最详细教程没有之一

首先桌面任意的位置右键新建文本文档输入如下代码: TASKKILL /F/IM WECHAT.EXE start " " "D:\Program Files (x86)\Tencent\WeChat\WeChat.exe" start " " "D:\Program Files (x86)\Tencent\WeChat\WeChat.exe" ...

大超子 4390

Frida+Objection保姆级教程:从环境搭建到实战Hook(含Wallbreaker插件使用)

本文提供了一份从零开始的Frida与Objection移动安全动态分析实战指南。详细讲解了Python环境配置、Frida-Server部署、Objection核心命令使用以及Wallbreaker插件安装与应用。通过实战案例演示如何Hook网络请求(如HttpURLConnection和OkHttp3),帮助安全研究人员快速掌握应用运行时行为分析与漏洞挖掘技能。

weixin_28318011的博客 101

hdu2844 完全背包+多重背包(经典)

题意:给你一些不同价值和一定数量的硬币,求用这些硬币可以组合成价值在[1 , m]之间的有多少; 思路:由于考虑时间,所以需要用二进制优化;#include<stdio.h> #include<string.h> #define max(x,y) (x>y?x:y) int a[101],b[101],dp[100001]; int main() { int n,m; while(

hndu__lz的博客 525

立创EDA手动拼板实战:当自带功能不够用,如何用‘复制粘贴’搞定异形拼版与特殊布局

本文详细介绍了立创EDA手动拼板技术在异形拼版与特殊布局中的应用实战。通过CTRL+SHIFT+V等核心操作技巧,解决混合尺寸拼板、特殊间距需求等复杂场景,提升PCB设计效率与灵活性,特别适合需要高精度控制的射频电路和医疗设备项目。

weixin_31967485的博客 386

HDU 2844 (多重背包)

多重背包(二进制优化)模板题意: 有n个硬币,每一个硬币有自己的数值Vi,其个数为Ci。不同硬币的不同组合能买到不同物品,问在1~V的区间内最多能买到多少不同种类的物品。 思路: 其实题意也就是求硬币在[1,V][1 , V ] 区间能组合成多少不同数字。那么问题来了,怎么求出? 直接暴力求那是绝对不能做的,现在的比赛怎么存在这么简单的问题。 可以把它转化为背包问题,dp

Since_natural_ran 454

从零搭建风电场:手把手教你用WAsP+WindPRO完成风资源评估全流程

本文详细介绍了从零开始搭建风电场的全流程,重点讲解如何使用WAsP和WindPRO进行风资源评估和风场布局优化。内容包括软件配置、数据采集规范、风图谱建模实战、机组选型策略以及常见问题解决方案,帮助工程师掌握风电开发的核心技术,提升项目成功率。

year5的博客 371

从零开始跑通3DGS教程:(三)坐标系与尺度编辑(CloudCompare)

本文所属《从零开始跑通3DGS教程》系列文章; sfm重建的点云已经丢掉了尺度信息,并且坐标系跟图像数据有关(SFM初始化选择的图像),所以如果想恢复物理真实尺度,以及在想要的视角下渲染,那么需要对尺度和坐标系进行编辑修正,下文介绍如何使用CloudCompare修改坐标系和尺度

诺有缸的高飞鸟的博客 2871

HDU 2844:Coins(多重背包)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=2844有 N 种物品和一个容量为 V 的背包。第 i 种物品最多有 ci 件可用,每件耗费的 空间是 wi,价值是 vi。求解将哪些物品装入背包可使这些物品的耗费的空间总和不超 过背包容量,且价值总和最大。这样的是多重背包。多重背包有的暴力就是在01背包的基础上多一重循环:for(k=1;k<=c[i];k+

I don't have the strength. 310

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

HDU 2844 Coins (多重背包->类01背包优化)

HDU 2844 Coins (多重背包->类01背包优化) (TEST<31> 11.20) 解题思路 看着就是 多重背包问题 在这里 进行了 0/1背包的优化 用dp【价值】=所能达到的最大价值 来判定是否能够达到 这个 值 关于0/1背包优化 解析 (出自ACwing 基础算法视频第五章 第一节动态规划 ) 看 1023 数字之和能够组成 1023? 0-1023 枚举每...

MaxVen 236

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

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

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

HDU 2844 Coins(多重背包)

HDU Coins(多重背包) http://acm.hdu.edu.cn/showproblem.php?pid=2844 题意: 现在有价值val[1],val[2],…val[n]的n种硬币, 它们的数量分别为num[i]个. 然后给你一个m, 问你区间[1,m]内的所有数目, 由之前n种硬币来构造(即选取某些硬币使得这些硬币的价值和等于[1,m]区间的特定数), 最多能构造出这m个数中的多少个? 分析: 基本的完全背包问题. 我们令dp[i][j]==x表示

code 1321

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

HDU 2844 Coins 多重背包 (重量和价值相同)

Problem Description Whuacmers use coins.They have coins of value A1,A2,A3...An Silverland dollar. One day Hibix opened purse and found there were some coins. He decided to buy a very nice watch in a

深海沧澜的博客 480

HDU2844 Coins 多重背包

HDU2844 Coins 多重背包 Coins Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 12330Accepted Submission(s): 4922 Pr...

weixin_30666753的博客 105

HDU2844 Coins【多重背包】

Coins Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 20670Accepted Submission(s): 8121 Problem Description Whuacmers use coins.They h...

逐梦者 292

HDU 2844 Coins(多重背包,装满可行性)

HDU 2844 Coins    (POJ1742也是这道,但是用多重背包超时)                                                       http://acm.hdu.edu.cn/showproblem.php?pid=2844 题意:        现在有价值val[1],val[2],…val[n]的n种硬币, 它们的数量分别为

sgh666666的博客 588

hdu_2844_Coins(多重背包)

题目连接:hdu_2844_Coins 题意:给你n个硬币的价值和对应的数量,问你从1到m有那些数能组合出来 题解:如果我们将硬币的价值看成一个物品的容量和价值,那么对应1-m,如果dp[i]==i,那么这个数就能组合出来,所以这题就变成了一个多重背包,多重背包可以分为完全和01背包,也可以直接用01背包做,分两种情况的速度要快一些,只用01背包的速度要慢一些,不过还是可以AC的 ...

weixin_30627381的博客 144

HDU 2844 Coins 多重背包

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2844 Coins Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others) 问题描述 Whuacmers use coins.They have coins of value A1,A2,A3.....

weixin_30809173的博客 117

Coins HDU - 2844(多重背包)

Coins HDU - 2844 (多重背包) Whuacmers use coins.They have coins of value A1,A2,A3…An Silverland dollar. One day Hibix opened purse and found there were some coins. He decided to buy a very nice watch in a nearby shop. He wanted to pay the exact price(without c

Are_you_ready的博客 265

HDU 2844 Coins(多重背包)

Problem Description Whuacmers use coins.They have coins of value A1,A2,A3…An Silverland dollar. One day Hibix opened purse and found there were some coins. He decided to buy a very nice watch in a ne

贾作真时真亦贾的博客 246
上一篇: Lua入门教程
下一篇: hdu 2159 FATE(二维完全背包)
accelerator_2016
博客等级 码龄11年 3粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值