P3462-[POI2007]ODW-Weights【贪心】
正题
题目链接:https://www.luogu.com.cn/problem/P3462
题目大意
nnn个容器容量不同,mmm个物品,对于一两个物品i,ji,ji,j,若wi≤wjw_i\leq w_jwi≤wj那么有wi∣wjw_i|w_jwi∣wj。
求能够放下的最多物品。
解题思路
显然就是一个进位的东西,我们设fif_ifi表示第iii位能装下多少个(优先装大的先)
对于每个容器计算一个总的出fif_ifi(不会影响整体)
然后我们将fif_ifi往后面进位,不够就的补足知道满。
codecodecode
#include<cstdio>
#include<cstring>
#include<algorithm>
#define ll long long
using namespace std;
const ll N=1e5+10;
ll n,m,v[N],a[N],k[N],s[N],c[N],r[N],ans,cnt;
int main()
{scanf("%lld%lld",&n,&m);for(ll i=1;i<=n;i++)scanf("%lld",&v[i]);for(ll i=1;i<=m;i++)scanf("%lld",&a[i]);sort(a+1,a+1+m);k[1]=s[1]=a[1];c[1]=cnt=1;for(ll i=2;i<=m;i++)if(a[i]!=a[i-1]) k[++cnt]=a[i]/a[i-1],s[cnt]=a[i],c[cnt]=1;else c[cnt]++;for(ll i=1;i<=n;i++)for(ll j=cnt;j>=1;j--)if(v[i]>=s[j])r[j]+=v[i]/s[j],v[i]%=s[j];ll l=cnt-1;for(ll i=cnt;i>=1;i--){ll w=r[i]*s[i];while(l>0){int use=max(min((c[l]-r[l])*s[l],w),0ll);w-=use;r[l]+=use/s[l];if(!w) break;l--;}r[i]=w/s[i];ans+=min(r[i],c[i]);}printf("%lld",ans);
}
P3462-[POI2007]ODW-Weights【贪心】相关推荐
- 算法——贪心算法解0-1背包问题
问题的描述 我们先根据一个贪心算法的经典应用实例,然后给出贪心算法的实现步骤与关键环节,最后给出C++代码求解0-1背包问题. 背包问题(Knapsack Problem):有NN件物品有一个承重(也 ...
- bzoj 1106: [POI2007]立方体大作战tet(贪心+树状数组)
1106: [POI2007]立方体大作战tet Time Limit: 10 Sec Memory Limit: 162 MB Submit: 785 Solved: 574 [Submit][ ...
- bzoj1110: [POI2007]砝码Odw
神题 考虑到有倍数关系这个条件,所以可以运用进制的思想,比如当有3,9,18,54这些种类的砝码时,133的容量可以写成2*54+1*18+0*9+2*3+1,末尾的+1永远用不上,可以舍弃,那么各位 ...
- Weights and Measures(贪心+动态规划)
I know, up on top you are seeing great sights, But down at the bottom, we, too, should have rights. ...
- 【UVA - 10154 】Weights and Measures (贪心排序,dp,类似0-1背包,状态设定思维)
题干: The Problem Mack, in an effort to avoid being cracked, has enlisted your advice as to the order ...
- BZOJ1110 : [POI2007]砝码Odw
砝码从小到大放最优,二分答案mid,转化为判定前mid小的砝码能否放完. 从大到小考虑砝码,依次扫描每个容器,能放就放. 由于砝码重量都成倍数关系,所以最多只有$O(\log n)$种不同的数字,所以 ...
- 野生前端的数据结构练习(12)贪心算法
参考代码可见:https://github.com/dashnowords/blogs/tree/master/Structure/GreedyAlogrithm 一.贪心算法 贪心算法属于比较简单的 ...
- nyoj--364--田忌赛马(贪心)
田忌赛马 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 Here is a famous story in Chinese history. "That wa ...
- 背包问题 贪心算法 java_JS基于贪心算法解决背包问题
前面我们分享了关于js使用贪心算法解决找零问题,本文我们接着为大家介绍JS基于贪心算法解决背包问题. 贪心算法:在对问题求解时,总是做出在当前看来是最好的选择.也就是说,不从整体最优上加以考虑,他所做 ...
- js贪心算法---背包问题
/** @param {Object} capacity 背包容量 6* @param {Object} weights 物品重量 [2,3,4]* @param {Object} values 物品 ...
最新文章
- 【Android 电量优化】电量优化 ( 使用 AlarmManager 保持 CPU 唤醒 )
- 自定义ServicesLoader来实现根据配置使用不通的SPI实现从而实现项目扩展
- PDF文件上载图标,与启用浏览器浏览允许后依然无法在浏览器打开PDF文件的解决方案...
- 北京内推 | 地平线视觉算法团队招聘视觉算法实习生
- python小游戏——21点
- Soul网关源码阅读(七)限流插件初探
- iOS 应用启动慢的原因找到了!
- 【Oracle】DataGuard中 Switchover 主、备切换
- 【读书笔记】钢铁是怎么炼成的
- Flex和Flash之间相互调用
- matlab衰减指数的程序是,如何用MATLAB仿真单指数衰减振荡波
- java编程找异数,异类Outliers_又名异数Malcolm_Gladwell.pdf
- android cocos2dx pdf,(cocos2dx横幅)芒果广告AndroidSDK使用说明.pdf
- Squid 代理服务之反向代理服务器架构搭建
- 国外android内存清理工具,给大家推荐一个安卓清理神器哈,确实好用
- WSAIoctl 的SIO_GET_EXTENSION_FUNCTION_POINTER用法
- SQL Server2008r2安装
- 独立手机版营销推广落地页pbootcms模板落地页单页网站
- getenv、setenv函数
- 达梦数据库——限制IP以及网段连接数据库
热门文章
- 华为Mate30与大疆手机云台3_更便捷更从容,大疆DJI OM 4手机云台使用体验
- vim 寄存器 操作_vim指令
- oracle clob 查询换行,sqoop clob从Oracle导入到hive 回车换行导致记录增多
- python list remove 删除引用_Python——list列表操作一坑(remove)
- 网络被屏蔽了怎么办_预埋的网线不够长,怎么办?
- java swing 面试题_下面有关JAVA swing的描述,说法错误的是?
- C++分析使用拷贝控制成员和调用构造函数的时机
- 《C++ Primer》7.3.3节练习
- random(随机函数生成)
- sql 对groupby 后的数据limit_SQL(三)——汇总分析