Peter算法小课堂—贪心与二分

太戈编程655题

题目描述:
有n辆车大甩卖,第i辆车售价a[i]元。有m个人带着现金来申请购买,第i个到现场的人带的现金为b[i]元,只能买价格不超过其现金额的车子。你是大卖场总经理,希望将车和买家尽量多地进行一对一配对,请问最多卖出多少辆车?

贪心

贪心法模板:

比如说:每次挑最便宜的车卖给贫穷的人,……

相信大家第一个想到的思路就是二重for循环,第一层int i=1;i<=m;i++,第二层int j=1;j<=n;j++,时间复杂度O(n^2)。但是一看数据规模,n,m<=200000,也就是运行40000000000,四百亿,几乎不可能。这一下子,大家就想到了传说中的“蠕动区间”。代码来咯,

#include <bits/stdc++.h>
using namespace std;
const int N=200009;
int n,m,a[N],b[N];
int main(){freopen("car2.in","r",stdin);freopen("car2.out","w",stdout);cin>>n>>m;for(int i=1;i<=n;i++) cin>>a[i];for(int i=1;i<=m;i++) cin>>b[i];sort(a+1,a+1+n);sort(b+1,b+1+m);int cnt=0,i=1,j=1;while(i<=n&&j<=m){if(a[i]<=b[j]){i++;j++;cnt++;}else j++;}cout<<cnt<<endl;return 0;
}

太戈编程656题

题目描述:
有n辆车大甩卖,第i辆车售价a[i]元。有m个人带着现金来申请购买,第i个到现场的人带的现金为b[i]元。你是大卖场总经理,可以将车和买家自由配对。如果买家的现金低于配对车的售价时,你有权力借钱给买家,但是总的借款额度不可以超过f。注意:买家之间不会互相借钱。请问通过你的配对和借款,剩下没买到车的人最少有几人?

二分+贪心

思路:要让没买到车的人最少,相当于要求买到车的人最多。二分枚举答案x,OK函数判断卖出x辆车是否可行(最优化问题→可行性问题),而判断的方法就要用到贪心

bool OK(int x){int sum=0;for(int i=0;i<=x;i++){if(a[i]>b[m-x+i]) sum+=a[i]-b[m-x+i];if(sum>f) return 0; }return 1;
}

 

int main(){freopen("car3.in","r",stdin);freopen("car3.out","w",stdout);cin>>n>>m>>f;for(int i=0;i<n;i++) cin>>a[i];for(int i=0;i<m;i++) cin>>b[i];sort(a,a+n);sort(b,b+m);int l=0,r=min(n,m),ans=0;while(l<=r){int mid=l+(r-l)/2;if(OK(mid)) ans=mid,l=mid+1;else r=mid-1;}cout<<m-ans<<endl;return 0;
}

太戈编程1662题

自己独立思考……

cin>>n>>d;
for(int i=1;i<=n;i++) cin>>x[i];
sort(x+1,x+n+1);
int cnt=0;
for(int i=1;j=2;i<=n-1;i++){while(j<=n&&x[j]-x[i]<d) j++;cnt+=j-i-1;
}
cout<<cnt<<endl;

希望这些对大家有用,三连必回

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/238578.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

重温经典struts1之国际化(I18N)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 前言 拿Google网站来举例&#xff0c;在世界上不同国家和地区&#xff0c;登陆Google网站&#xff0c;网站上都会显示本国家语言&#xff0c;它是怎么做到的&#xff0c;就是…

华为云Windows Server服务器下,Node使用pm2-logrotate分割pm2日志,解决pm2日志内存占用过高的问题。

一、简介 PM2 是一个守护进程管理器&#xff0c;它将帮助您管理和保持您的应用程序在线。PM2 入门很简单&#xff0c;它以简单直观的 CLI 形式提供&#xff0c;可通过 NPM 安装。官网地址&#xff1a;https://pm2.keymetrics.io/ 二、问题&#xff1a;pm2日志内存占用过高&am…

【Linux】编辑、查看和搜索文件

大多数 Linux 发行版不包含真正的 vi;而是自带一款高级替代版本&#xff0c;叫做 vim(它是“vi improved”的简写)由 Bram Moolenaar 开发的&#xff0c;vim 相对于传统的 Unix vi 来说&#xff0c;取得了实质性进步。 启动和退出 vim 使用vim可以启动&#xff0c;如命令行输…

SpringBoot Elasticsearch全文搜索

文章目录 概念全文搜索相关技术Elasticsearch概念近实时索引类型文档分片(Shard)和副本(Replica) 下载启用SpringBoot整合引入依赖创建文档类创建资源库测试文件初始化数据创建控制器 问题参考 概念 全文搜索&#xff08;检索&#xff09;&#xff0c;工作原理&#xff1a;计算…

电子合同在物流运输中的场景应用

物流运输行业发展迅速&#xff0c;形成了采购、运输、仓储、配送、代理等全面的产业体系&#xff0c;在业务的开展过程中&#xff0c;各类纸质文件的签章管理如承运协议、运输合同、电子回单、入仓及出仓单据、融资保理协议、代理合作协议、商家入驻协议、员工劳动合同等&#…

任天堂,steam游戏机通过type-c给VR投屏与PD快速充电的方案 三type-c口投屏转接器

游戏手柄这个概念&#xff0c;最早要追溯到二十年前玩FC游戏的时候&#xff0c;那时候超级玛丽成为了许多人童年里难忘的回忆&#xff0c;虽然长大了才知道超级玛丽是翻译错误&#xff0c;应该是任天堂的超级马里奥&#xff0c;不过这并不影响大家对他的喜爱。 当时FC家用机手柄…

中国社科院与新加坡新跃社科大联合培养博士—未来是我们自己创造的

没有任何东西能像大胆的幻想那样促进未来的创立&#xff0c;没有任何东西能像扎实的实践那样实现幻想的未来&#xff0c;今天的幻想加实践就是明天的现实&#xff01;中国社科大-新加坡新跃社科大学联合培养工商管理博士&#xff0c;期待与您一起实现我们的未来。 人的一生其实…

SAP系统标准表之间的关联关系对应

SAP系统标准表之间的关联关系对应

指标体系构建-02-从0开始,梳理数据指标体系

指标体系构建-02-从0开始&#xff0c;梳理数据指标体系 一个例子&#xff0c;看懂并列式指标梳理 并列式指标体系&#xff0c;一般用于&#xff1a;描述个体情况 当我们想从几个不同角度&#xff0c;描述问题的时候&#xff0c;就需要并列关系 举个栗子&#x1f330;&#xf…

阿里云 ACK One 新特性:多集群网关,帮您快速构建同城容灾系统

云布道师 近日&#xff0c;阿里云分布式云容器平台 ACK One[1]发布“多集群网关”[2]&#xff08;ACK One Multi-cluster Gateways&#xff09;新特性&#xff0c;这是 ACK One 面向多云、多集群场景提供的云原生网关&#xff0c;用于对多集群南北向流量进行统一管理。 基于 …

SpringBoot+Redis的Bloom过滤器

1.保姆级Linux安装Redis ①把redis.tar.gz下载到linux中&#xff0c;并用命令tar -zxvf安装 ②安装完成进入目录输入make进行编译&#xff0c;编译完成后输入make install 进行安装 ③创建两个文件夹mkdir bin mkdir etc 将redis目录下的redis.conf文件移动到etc文件中&…

Modbus-TCP数据帧

Modbus-TCP基于4种报文类型 MODBUS 请求是客户机在网络上发送用来启动事务处理的报文MODBUS 指示是服务端接收的请求报文MODBUS 响应是服务器发送的响应信息MODBUS 证实是在客户端接收的响应信息 Modbus-TCP报文: 报文头MBAP MBAP为报文头&#xff0c;长度为7字节&#xff0c…

设计模式(三)-结构型模式(6)-享元模式

一、为何需要享元模式&#xff08;Flyweight&#xff09;? 假如在网页中渲染这样的一个画面&#xff1a;大小不一的星星铺满了整个画布&#xff0c;并且都在不断的进行移动闪烁着。一批星星消失了&#xff0c;另一批又从另一边缘处出现。 要实现这样的渲染效果&#xff0c;在…

『居善地』接口测试 — 20.Mock功能介绍

1、Mock功能介绍 各个业务系统都会关联多个三方系统接口调用&#xff0c;在测试过程中第三方业务存在不能及时提供接口调用&#xff0c;这时就需要用到我们的mock服务了。 Mock的本质在于模拟三方业务接口的返回&#xff0c;来满足自身的测试功能&#xff0c;快速完成测试任务…

docker安装ES:7.8和Kibana:7.8

本文适用于centos7,快速入手练习es语法 前置&#xff1a;安装docker教程docker、docker-component安装-CSDN博客 1.安装es 9200为启动端口&#xff0c;9300为集群端口 docker pull elasticsearch:7.8.0mkdir -p /mydata/elasticsearch/pluginsmkdir -p /mydata/elasticsear…

python核心阶段(七)—— 包&模块以及虚拟环境

1.包&模块 概念解释 模块&#xff1a;为了使代码容易维护&#xff0c;可以将一组功能相关的代码写入一个单独的.py文件中&#xff0c;这 个.py文件就被称作一个模块 包&#xff1a; 包是指一个有层次的文件目录结构&#xff0c;它包含多个相关模块或子包&#xff1b; 它…

基于MybatisPlus批量高效插入百万条数据

引言 在JAVA程序开发中&#xff0c;对数据库进行大量数据插入是一个常见的操作&#xff0c;作为一个软件开发工程师&#xff0c;大批量的数据处理是日常工作&#xff0c;如何优化插入性能&#xff0c;提升数据处理效率是对大多数工程师的一个重要考验。本文将围绕逐条插入和批…

随时随地安心工作:迅软DSE保护您手机办公中的关键数据

互联网的快速发展让移动办公成为了日常工作中的一部分&#xff0c;同时企业数据加密的需求也已经不仅仅局限于内部终端&#xff0c;对于灵活的手机移动端也同样需要进行合法合规的数据安全管控。 迅软DSE数据防泄密系统提供移动端管理模块&#xff0c;支持Android、IOS移动客户…

BearPi Std 板从入门到放弃 - 引气入体篇(11)(SPI驱动 TFT LCD(ST7789))

简介 SPI 驱动 ST7789V2 进行字符显示, 并且使用中文库显示中文信息。主芯片: STM32L431RCT6LED : PC13 \ 推挽输出即可 \ 高电平点亮串口: Usart1 / LPUARTSPI(与LCD数据传输) : SPI2LCD_RESET&#xff08;复位引脚&#xff09;: PC7 \ 推挽输出即可 LCD_POWER&#xff08;…

通过几个基本概念说一下为什么openGauss是当下之选?

Database、Schema、User都是数据库的基本概念&#xff0c;SQL标准中也有明确规范。但不同数据库的具体实现也不尽相同&#xff0c;有些甚至大相径庭。这就导致用户在做国产化选型和数据库迁移时可能会遇到种种困难。本文从这几个基本概念展开&#xff0c;说说为什么openGauss系…