当前位置: 首页 > news >正文

马蹄集 BD202401补给

可怕的战争发生了,小度作为后勤保障工作人员,也要为了保卫国家而努力。

现在有 N(1≤N≤10^{3})个堡垒需要补给,然而总的预算 B(1≤B≤10^{9})是有限的。

现在已知第 i 个堡垒需要价值 P(i) 的补给,并且需要 S(i) 的运费。
鉴于小度与供应商之间长期稳定的合作关系,供应商慷慨地提供了一次特别的采购优惠。具体而言,小度可以选择对某次补给进行半价采购。
这意味着,如果小度决定在向第 i 个堡垒提供补给时利用这一优惠,那么此次补给的采购及运输总费用将减少至 ⌊P(i)/2⌋+S(i),其中优惠价格按照向下取整的原则计算。
对于其他堡垒 j,补给的采购和运输费用则保持不变,即 P(j)+S(j)。

请计算小度的最多能给多少堡垒提供补给?

格式

输入格式:

第1行2个整数:N 和 B 。(1≤N≤10^{3},1≤B≤10^{9});
第2到 N+1 行:第 i+1 行包含两个空格分隔的整数,P(i)和S(i)。(0≤P(i),S(i)≤10^{9})。

输出格式:

1 行 1 个整数表示能提供补给的最大数。

样例 1

输入:

5 29
6 3
2 8
10 2
1 2
12 5

输出:

4

贪心:

按照 p和s 的总和升序排序,剩余的预算不够时,看是否满足 剩余的预算>下一个堡垒的p/2,满足则ans++

#include<bits/stdc++.h> 
using namespace std;const int N = 1e3+10;
int n, b;
int ans;struct BL
{int p;int s;
}bl[N];bool cmp(BL x, BL y)
{return x.p+x.s < y.p+y.s;
}int main()
{cin>>n>>b;for(int i=1; i<=n; ++i) cin>>bl[i].p>>bl[i].s;sort(bl+1, bl+n, cmp);for(int i=1; i<=n; ++i){if(b > bl[i].p+bl[i].s){b -= bl[i].p+bl[i].s;ans++;}else if(b > bl[i].p/2+bl[i].s){b -= bl[i].p/2+bl[i].s;ans++;}else break;}cout<<ans<<endl;return 0;
}
http://www.dtcms.com/a/278305.html

相关文章:

  • C#中如何阻止硬件休眠
  • Vue 低代码可视化表单设计器 FcDesigner v3.3 版本发布!表格布局升级+精细化权限控制
  • JDK1.8 ReentrantLock相关源码
  • 代数基本定理
  • 多模态数据处理新趋势:阿里云ODPS技术栈深度解析与未来展望
  • RabbitMQ中队列长度限制(Queue Length Limit)详解
  • LVS的集群技术和分布式
  • hive的相关的优化
  • 传统机器学习在信用卡交易预测中的卓越表现:从R²=-0.0075到1.0000的华丽转身
  • Android 性能优化:启动优化全解析
  • Android 16系统源码_窗口动画(一)窗口过渡动画层级图分析
  • USB读写自动化压力测试
  • Android编译系统——基础介绍(一)
  • 微软发布BioEmu模型
  • spring shell 基础使用
  • PyTorch生成式人工智能(17)——变分自编码器详解与实现
  • 大话数据结构之 <链表>(C语言)
  • 8.服务通信:Feign深度优化 - 解密声明式调用与现代负载均衡内核
  • UV vs Pip:Python 包管理的革命性进化
  • 017 进程控制 —— 终止进程
  • CentOS 7服务器上使用Docker部署Notesnook的详细指导说明
  • Python爬虫打怪升级:数据获取疑难全解析
  • 天地图前端实现geoJson与wkt格式互转
  • C++面试5题--4day
  • Java陷阱之assert关键字详解
  • 使用layui的前端框架过程中,无法加载css和js怎么办?
  • 谷歌开源库gtest 框架安装与使用
  • CentOS系统哪些版本?分别适用于那些业务或网站类型?
  • 2025年Java后端社招面试:高频场景题+八股文面试题解析
  • toString