[bzoj1110][贪心]砝码Odw

自动化革命:AI在需求分析、代码生成与测试中的深度应用 在2025年的科技浪潮中,人工智能(AI)已不再是实验室中的概念,而是深度渗透至软件开发的全生命周期。从需求分析的精准捕捉,到代码生成的自动化创作,再到测试环节的智能覆盖,AI正以革命性姿态重塑软件工程的核心环节。本文将结合2025年最新数据与行业实践,解析AI如何在这三大领域实现深度应用。 阅读详情

Description

  在byteotian公司搬家的时候,他们发现他们的大量的精密砝码的搬运是一件恼人的工作。公司有一些固定容
量的容器可以装这些砝码。他们想装尽量多的砝码以便搬运,并且丢弃剩下的砝码。每个容器可以装的砝码数量有
限制,但是他们能够装的总重量不能超过每个容器的限制。一个容器也可以不装任何东西。任何两个砝码都有一个
特征,他们的中总有一个的重量是另外一个的整数倍,当然他们也可能相等。

Input

  第一行包含两个数n和m。表示容器的数量以及砝码的数量。(1<=n, m<=100000) 第二行包含n个整数wi,表示
每个容器能够装的最大质量。(1<=wi<=1000000000) 第三行包含m个整数mj,表示每个砝码的质量。(1<=mj<=10000
00000)

Output

  仅包含一个数,为能够装进容器的最多的砝码数量。

Sample Input

2 4

13 9

4 12 2 4

Sample Output

3

题解

orz鏼爷
砝码两两互为倍数关系,从小到大排个序,可以发现不同的砝码种类数是log(10^9)级别的,只有30左右。
根据贪心的思想,砝码从小到大依次装入一定是最优的
把每个容器的容量写成砝码大小的进制表示,比如当有3,9,18,54这些种类的砝码时,133的容量可以写成2*54+1*18+0*9+2*3+1,末尾的+1永远用不上,可以舍弃,那么各位从低到高分别是(2,0,1,2)。
把所有容器都写成这种表示,并把同一位上全部累加。比如说我们还有一个容器(0,1,2,0),那么两个容器累加的结果就是(2,1,3,2)。
当我们正在放大小为3的砝码时,就使用最低位上的容量。比如我们只有1个大小为3的砝码,那么塞入以后剩余容量为(1,1,3,2)。接下来要放大小为9的砝码,最低位上的那个1就永远用不上了。假如我们有2个9,而第二位上只有1的容量,那么就往高位借一个18拆成两个9,变成(2,3,2,2),然后塞入后剩余(2,1,2,2)。以此类推。
当剩余容量不够再放入时即停止,当前已放入的砝码个数即为最优答案。

#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<cmath>
using namespace std;
int n,m;
int l1[110000],len,gg[110000],a[110000],b[110000];
int main()
{
    scanf("%d%d",&n,&m);
    for(int i=1;i<=n;i++)scanf("%d",&a[i]);
    sort(a+1,a+1+n);
    for(int i=1;i<=m;i++)
    {
        scanf("%d",&b[i]);
        l1[++len]=b[i];
    }
    sort(b+1,b+1+m);
    sort(l1+1,l1+1+len);
    len=unique(l1+1,l1+1+len)-(l1+1);
    for(int i=1;i<=n;i++)
        for(int j=len;j>=1;j--)gg[j]+=a[i]/l1[j],a[i]%=l1[j];
    int ans=0;
    for(int i=1;i<=m;i++)
    {
        int L=lower_bound(l1+1,l1+1+len,b[i])-(l1),R;
        R=L;while(!gg[R]&&R<len)R++;
        if(!gg[R])break;
        for(int j=R-1;j>=L;j--)gg[j]+=l1[j+1]/l1[j]-1;
        gg[R]--;ans++;
    }
    printf("%d\n",ans);
    return 0;
}
YOLO11改进 | 卷积模块 | 轻量化GSConv替换普通的conv yolo11,GSConv,卷积模块 阅读详情

相关推荐

电池充电管理芯片规格书精读指南:从参数解析到设计实战

电池充电管理是嵌入式系统和便携式设备开发中的基础环节,其核心在于理解并应用充电芯片的规格参数。充电芯片通过精确控制电压、电流、温度等关键参数,实现对锂电池等可充电电池的安全、高效管理。掌握这些参数原理,对于优化产品功耗、提升充电效率、保障电池寿命具有重要技术价值,广泛应用于智能穿戴、消费电子、无人机等场景。本文聚焦于**充电电流**设定与**热管理**等核心参数,深入解析其相互影响与工程选型中的权衡,旨在帮助开发者将抽象的规格书数据转化为可靠的电路设计依据,从而有效排查充电故障,提升产品整体可靠性。

weixin_26874745的博客 667

【进制】BZOJ1110[砝码Odw]题解

题目概述有n个砝码,m个背包(n<=10^5,m<=10^5),每个背包大小为mi(mi<=10^9),每个砝码的大小为wi(wi<=10^9)。每两个砝码之间总有一个砝码是另外一个的正整数倍(也就是说可以相同)。解题报告因为题目里的砝码都是倍数关系,所以我们排序去重之后最多会得到30个砝码(log2(n)),然后对于一个背包,可以将他拆分成一个对应砝码的“数”。如果觉得有点难理解,我们拿这个例子说

ZigZagK的博客 532

fMRI原始数据分割的笔记

好记性不如烂笔头_fMRI小白入门笔记

ZY_brain的博客 2897

【BZOJ】1110: [POI2007]砝码Odw

题意 给定\(n\)个砝码和\(m(1 \le n, m \le 100000)\)个背包\((1 \le n_i, m_i \le 1000000000)\),保证对于任意两个砝码都有一个是另一个的正整数倍,求最多拿走多少砝码。 分析 砝码的种类不会超过\(30\)种。 小的肯定在大的前面放。 题解 分出\(s\)种种类后,我们将背包用\(s\)个数的进制来表示。那么从小到大地放,如果...

202

74LS161/48 交通灯控制系统:30-5-20-5 时序逻辑电路 Multisim 仿真验证

本文详细解析了基于74LS161/48芯片的交通灯控制系统设计,通过Multisim仿真验证30-5-20-5时序逻辑电路。从系统架构搭建、状态机实现到波形分析,提供全流程操作指南与典型问题排查方法,助力数字电路课程设计高效完成。

weixin_26742753的博客 380

盘点那些好用的SAP FIORI App(二) -上传凭证Upload Journal Entry

SAP FICO运维问题及解决方案分享

lijinbao171022的博客 1544

bzoj 1110: [POI2007]砝码Odw

题意: 在byteotian公司搬家的时候,他们发现他们的大量的精密砝码的搬运是一件恼人的工作。公司有一些固定容量的容器可以装这些砝码。他们想装尽量多的砝码以便搬运,并且丢弃剩下的砝码。每个容器可以装的砝码数量有限制,但是他们能够装的总重量不能超过每个容器的限制。一个容器也可以不装任何东西。任何两个砝码都有一个特征,他们的中总有一个的重量是另外一个的整数倍,当然他们也可能相等。 题解: ...

fyc的博客 287

EMC基础知识总结

电磁干扰(Electromagnetic Interference),简称EMI,有和两种。传导干扰主要是电子设备产生的干扰信号通过导电介质或公共电源线互相产生干扰;辐射干扰是指电子设备产生的干扰信号通过空间耦合把干扰信号传给另一个电网络或电子设备。

学海无涯的专栏 1370

bzoj1110 [POI2007]砝码Odw 贪心+进制拆分

题意就不说了。一开始居然在想直接dp,,, 看到是整数倍我的内心居然毫无波动。。真是傻的不行了。。 因为是整数倍,那我们可以把一个容器用砝码的重量做为进制拆分,然后从小到大一个个填就可以了,贪心策略肯定是最优的。 具体如何拆分看hzwer www:http://hzwer.com/4761.html#include<cstdio> #include<algorithm> #include<io

老臣 465

PCL 三维重建 基于B样条曲线的曲面重建算法

本文将介绍如何使用B样条曲线进行三维点云数据的曲面重建。B样条曲线和曲面是一种强大的数学工具,在计算机图形学、CAD设计等领域中广泛应用。通过对点云数据进行曲面拟合和优化,最终得到精确的曲面模型。本示例展示了如何利用PCL中的B样条曲线拟合算法进行三维曲面重建,并对重建结果进行可视化。

纵马踏花向自由 658

飞牛fnNAS搭建web版微信

摘要:本文介绍了一种通过Docker在飞牛NAS上部署微信客户端的方法,实现24小时同步微信聊天记录。具体步骤包括:1)激活飞牛NAS的Docker功能并配置镜像加速源;2)创建专用文件夹并下载docker-wechat镜像;3)设置容器参数并部署微信客户端;4)通过局域网或ZeroTier内网穿透实现远程访问。相比传统Windows/Linux方案,该方法资源占用更低,适合需要长期保存微信聊天记录的用户。

dgnankai的专栏 3336

bzoj 1110 贪心 + 进制转换

思路:感觉脑洞好大啊。。。 因为每两个砝码其中一个都是另一个的倍数,我们可以知道砝码的种数很少,我们将所有容器的 容量都转换成用这些砝码的重量的进制表示,然后将所有砝码排序,然后贪心地取,取到不能再取。 #include<bits/stdc++.h> #define LL long long #define fi first #define se second ...

209

opencv案例实战——银行卡模式匹配识别

在之前的几篇文章中我们已经介绍了opencv的一些基础知识,本篇文章我们将结合一个案例运用之前的知识并且学习opencv中模式匹配的应用,用到的知识点如果有不清楚的可以查看上面列出来的系列文章。具体代码会放在最后。

艾醒的博客 1339

[bzoj1110][POI2007]砝码Odw_贪心

bzoj-1110 POI-2007 砝码Odw 参考博客:http://hzwer.com/4761.html 题目大意:在byteotian公司搬家的时候,他们发现他们的大量的精密砝码的搬运是一件恼人的工作。公司有一些固定容量的容器可以装这些砝码。他们想装尽量多的砝码以便搬运,并且丢弃剩下的砝码。每个容器可以装的砝码数量有限制,但是他们能够装的总重量不能超过每个容器的限制。一个容器也可以不...

weixin_30753873的博客 89

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

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

STM32F407中文手册

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

bzoj 1110: [POI2007]砝码Odw 贪心

第一次见到这个模型. 首先,不难得出砝码的种类不会超过 $log(10^9)$ 个,然后就不会分析了qaq... 那么,就说明一共只有 $30$ 多个本质不同的砝码. 考虑对每个背包进行状态的压缩:写成若干个砝码大小乘积的形式. 即 $v[i]=w[i]*a+w[i+1]*b+....$ 然后,将所有背包的系数加和 (有点类似于不进位的进制) 因为呢,你发...

EM LGH 153

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

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

【BZOJ1110】[POI2007]砝码Odw 贪心

【BZOJ1110】[POI2007]砝码Odw Description   在byteotian公司搬家的时候,他们发现他们的大量的精密砝码的搬运是一件恼人的工作。公司有一些固定容量的容器可以装这些砝码。他们想装尽量多的砝码以便搬运,并且丢弃剩下的砝码。每个容器可以装的砝码数量有限制,但是他们能够装的总重量不能超过每个容器的限制。一个容器也可以不装任何东西。任何两个砝码都有一个特征,他们...

weixin_30713953的博客 81

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

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

BZOJ 1110 POI2007 砝码Odw 贪心

题目大意:给定n个砝码和m个背包,保证对于任意两个砝码都有一个是另一个的正整数倍,求最多拿走多少砝码 http://hzwer.com/4761.html 大概想到了进制拆分但是没想到具体怎么做。。。 我还是太弱了。。。 #include #include #include #include #define M 100100 using namespace std; int n

世界 1574

BZOJ 1110 [POI2007]砝码Odw 进制+贪心

BZOJ 1110 [POI2007]砝码Odw 进制+贪心

-Claude 1714

bzoj 1110 [POI2007]砝码Odw 贪心+进制转化

[POI2007]砝码Odw Time Limit:10 SecMemory Limit:162 MBSubmit:661Solved:366[Submit][Status][Discuss] Description   在byteotian公司搬家的时候,他们发现他们的大量的精密砝码的搬运是一件恼人的工作。公司有一些固定容量的容器可以装这些砝码。他们想装尽量多的砝...

weixin_30325971的博客 105

[进制 贪心] BZOJ 1110 [POI2007]砝码Odw

因为都是倍数,可以考虑以最小的数为进制 然后从小到大装,不够的向高位借,类似小学减法,但感觉可卡? #include #include #include using namespace std; inline char nc() { static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p1=buf)+fread(b

雯舞 490

BZOJ 1110: [POI2007]砝码Odw 进制转换+贪心

进制转换+贪心

NeighThorn的博客 668

BZOJ 1110: [POI2007]砝码Odw( 贪心 )

ORZjcvb... 1 #include<bits/stdc++.h> 2 3 using namespace std; 4 5 const int maxn = 100009; 6 7 int N, M, item[maxn], V[maxn]; 8 vector<int> o, cnt, Div; 9 10 int...

weixin_30786657的博客 138

BZOJ 1110: [POI2007]砝码Odw

看了题解,发现是用进制转换来做。这种题不看题解谁会想到用进制转换这种冷门东西??? 知道是进制转换就很容易了,就变成了一道贪心+模拟题。 首先,进制是a[1],a[2],a[3],…a[n],然后将所有容器体积都加入,可以得到一个(会变的)进制数:xxxxxxx…xxxxx。 考虑到只需要求有几个砝码能够被装下,而不用求利用率,所以是道贪心,从小到大进行放置显然优秀。于是我们就从小到大放置砝码,这...

Love_xyh的博客 235

BZOJ1110: [POI2007]砝码Odw

题目大意:给定一些容器和砝码,保证任意两个砝码之间存在正整数倍数关系,求最多能放进去多少砝码 首先把所有重量相同的砝码扔到一起,因为都是正整数倍,所以最多有logN种不同的砝码 然后考虑放置,首先砝码肯定要从最小的先开始放 那么我们考虑放置某一组砝码的时候优先放到哪个盒子里,这个其实可以由后一组砝码来决定,也就时先把当前容器装下后面砝码的残余空间计算出来,然后把砝码优先向这些残余空间

commonc的博客 710

【bzoj1110】 [POI2007]砝码Odw

Description   在byteotian公司搬家的时候,他们发现他们的大量的精密砝码的搬运是一件恼人的工作。公司有一些固定容 量的容器可以装这些砝码。他们想装尽量多的砝码以便搬运,并且丢弃剩下的砝码。每个容器可以装的砝码数量有 限制,但是他们能够装的总重量不能超过每个容器的限制。一个容器也可以不装任何东西。任何两个砝码都有一个 特征,他们的中总有一个的重量是另外一个的整数倍,当

Timothy023的博客 426
上一篇: [bzoj4737][数论][DP]组合数问题
下一篇: [bzoj4571][主席树]美味
Rose_max
博客等级 码龄10年 97粉丝 610原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值