【二维偏序+双指针】ABC245 E

news2024/10/6 12:33:13

E - Wrapping Chocolate (atcoder.jp)

题意:

思路:

因为两个数组都是无序的,因此可以考虑给这两个数组都排个序

将物品和盒子都按照两个维度去排序

我们可以先去枚举物品,然后去选对应的盒子

在选盒子的过程中,注意到 j 具有单调性,因此我们可以双指针

这类双指针可以概括为:对于枚举的量(i),将合法解放入容器中,再在容器(合法解空间)中找最优解(这里可以贪心),满足的条件通常是二维偏序,一维来保证合法性,另一维来贪心获得最优解

对于这道题,我们可以以长度来check合法性,然后在合法解空间中找出最合适的,即找出第一个宽度>=物品的宽度的盒子,这个可以lower_bound来解决

Code:

#include <bits/stdc++.h>

#define int long long

using namespace std;

const int mxn=2e5+10;
const int mxe=2e5+10;
const int mod=1e9+7;

struct item{
	int a,b;
}p[mxn];

struct box{
	int c,d;
}q[mxn];

int N,M;
int a[mxn],b[mxn],c[mxn],d[mxn];

bool cmp1(item x,item y){
	if(x.a==y.a) return x.b>y.b;
	return x.a>y.a;
}
bool cmp2(box x,box y){
	if(x.c==y.c) return x.d>y.d;
	return x.c>y.c;
}
void solve(){
	cin>>N>>M;
	for(int i=1;i<=N;i++) cin>>p[i].a;
	for(int i=1;i<=N;i++) cin>>p[i].b;
	for(int i=1;i<=M;i++) cin>>q[i].c;
	for(int i=1;i<=M;i++) cin>>q[i].d;
	sort(p+1,p+1+N,cmp1);
	sort(q+1,q+1+M,cmp2);
	int j=1;
	multiset<int> S;
	for(int i=1;i<=N;i++){
		while(j<=M&&p[i].a<=q[j].c){
			S.insert(q[j].d);
			j++;
		}
		//cout<<i<<" "<<j<<'\n';
		auto it=S.lower_bound(p[i].b);
		if(it==S.end()){
			cout<<"No"<<'\n';
			return;
		}
		S.erase(it);
	}
	cout<<"Yes"<<'\n';
}
signed main(){
	ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
	int __=1;//cin>>__;
	while(__--)solve();return 0;
}

还有一道类似的题,前几天刚做过:

(135条消息) 【贪心+双指针】ABC308 F_lamentropetion的博客-CSDN博客

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

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

相关文章

【王道·操作系统】第四章 文件管理(下)

一、文件系统 1.1 文件系统的层次结构 用户需要通过操作系统提供的接口发出上述请求——用户接口由于用户提供的是文件的存放路径&#xff0c;因此需要操作系统一层一层地查找目录&#xff0c;找到对应的目录项——文件目录系统不同的用户对文件有不同的操作权限&#xff0c;因…

c++读取字符串字符时出错

这是我做的一个c爬虫程序但是在抓取网页的时候string类型传递出现了问题 以下是图片代码 url的值是 "http://desk.zol.com.cn/" 我不知道为什么数据传递会出问题 请大佬指教

Java 串口通信(RS232/485)

Java 串口通信&#xff08;RS232/485&#xff09; 一.串口通信页面二.串口服务实现1.Java 串口通信配置1.扩展包和依赖库2.Pom配置 2.启动类3.工具包类1.Common2.Crc16Modbus3.SerialUtil 4.WebSocket 配置1.启动配置2.监听配置 5.UI交互类1.串口配置对象2.串口信息获取接口3.R…

HOT39-对称二叉树

leetcode原题链接&#xff1a;对称二叉树 题目描述 给你一个二叉树的根节点 root &#xff0c; 检查它是否轴对称。 示例 1&#xff1a; 输入&#xff1a;root [1,2,2,3,4,4,3] 输出&#xff1a;true示例 2&#xff1a; 输入&#xff1a;root [1,2,2,null,3,null,3] 输出&a…

JVM03-优化垃圾回收

JVM的内存区域中&#xff0c;程序计数器、虚拟机栈和本地方法栈这3个区域是线程私有的&#xff0c;随着线程的创建而创建&#xff0c;销毁而销毁&#xff1b;栈中的栈帧随着方法的进入和退出进行入栈和出栈操作&#xff0c;每个栈帧中分配多少内存基本是在类结构确定下来的时候…

消息中间件面试题详解

RabbitMQ 如何保证消息不丢失 消息的重复消费问题如何解决 rabbitmq中死信交换机&#xff08;RabbitMQ延迟队列有了解吗&#xff09; 延迟队列&#xff1a;进入队列的消息会被延迟消费的队列 场景&#xff1a;超时订单&#xff0c;限时优惠&#xff0c;定时发布 延迟队列 …

【Linux】-第一个小程序(进度条)

&#x1f496;作者&#xff1a;小树苗渴望变成参天大树 &#x1f389;作者宣言&#xff1a;认真写好每一篇博客 &#x1f38a;作者gitee:gitee &#x1f49e;作者专栏&#xff1a;C语言,数据结构初阶,Linux,C 动态规划算法 如 果 你 喜 欢 作 者 的 文 章 &#xff0c;就 给 作…

Activiti modoler 整合后报错 TypeError: Cannot read property ‘namespace‘ of undefined

之前在Demo整合过没问题&#xff0c;结果好不容易整合到现在的项目&#xff0c;结果出现成这个鬼样子……问题找了好久&#xff0c;一直以为是SpringSecurity请求限制没放开&#xff0c;所以找SpringSecurity的debug日志&#xff0c;浏览器请求有没有404、500、502等&#xff0…

将OpenAI和ChatGPT模型与LearnDash线上学习平台结合使用

人工智能革命来了&#xff01;&#xff08;以尽可能最好的方式。&#xff09;了解如何使用 Uncanny Automator 通过 OpenAI 和 ChatGPT 模型为您的线上学习和LearnDash LMS提供动力。 当人们听到“人工智能”这个词时&#xff0c;他们往往会想到流氓机器人、无政府状态的机器人…

科技项目验收测试报告包括哪些内容?

科技项目验收测试报告是评估科技项目质量和可靠性的重要文件。通过全面的测试和评估&#xff0c;可以确保项目的质量&#xff0c;提高用户满意度&#xff0c;降低项目风险。 一、科技项目验收测试报告的内容 1. 项目概述&#xff1a;介绍项目的背景、目标和范围&#xff0c;…

从 AI 增强到大模型,企业使用数据的方式又将如何变化?

AI&#xff08;Artificial Intelligence&#xff0c;人工智能&#xff09;的发展不过百年&#xff0c;却已经深刻影响着人们的思维和见解&#xff0c;并逐渐关联到每个人生活和工作的方方面面。从最初的规则引擎和引入统计学方法&#xff0c;到基于知识表示和推理机制的专家系统…

瓴羊QuickBI数据门户帮助企业高效管理和展示数据,使其更加明确易懂

随着信息技术时代的到来&#xff0c;越来越多的企业意识到商业信息是其最宝贵的资产之一。对于获取商业信息&#xff0c;需要专业的数据分析。因此&#xff0c;商业智能BI工具&#xff0c;如瓴羊QuickBI已经成为企业信息化中必不可少的工具。它拥有卓越的数据管理和展示功能&am…

VS2019中WebService实现发布、调用以及问题汇总

VS2019中WebService实现发布、调用以及问题汇总 前言一、WebService是什么&#xff0c;意义有哪些&#xff1f;二、创建二.发布三.访问问题总结1.不是专用连接2.HTTP错误 403.14 - Forbidden3.HTTP 错误 404.3 - Not Found4.应用程序种服务器错误 前言 在对接工厂Mes的过程中&…

图书馆流量监控性能分析案例

前言 图书馆信息中心老师反应&#xff0c;用户反馈系统有访问慢的情况&#xff0c;需要通过流量分析系统来了解图书馆系统的运行情况&#xff0c;此报告专门针对图书馆系统的性能数据做了分析。 图书馆已部署NetInside流量分析系统&#xff0c;使用流量分析系统提供实时和历史…

springboot 整合mybatis plus,使用druid 切换多数据源实现单数据库事务,附赠项目源码地址

项目源码地址 GitHub - liyanlei58/ssm: springboot druid mybatis plus 事务 最近想搭一套spring cloud开发环境&#xff0c;各种不顺利吧&#xff0c;先是spring cloud的组件某些功能不好用&#xff0c;是版本自身的bug。后来又碰到了事务无法回滚&#xff0c;这个搞了好几个…

银河麒麟服务器v10 sp1 安装mysql

可以先用 dpkg --list|grep mysql 查看自己的mysql有哪些依赖&#xff1a; 上图已经是安装后的截图&#xff0c;然后再卸载 sudo apt-get autoremove --purge mysql-common 本文在没有安装之前&#xff0c;只有mysql-common包&#xff0c;再用dpkg --list|grep mysql查看&…

[MySQL]在搭载Linux系统(centos7)的云服务上安装MySQL

[MySQL]MySQL 在 Centos 7环境安装 安装与卸载中&#xff0c;用户全部切换成为root&#xff0c;⼀旦安装&#xff0c;普通用户也能够使用。 文章目录 [MySQL]MySQL 在 Centos 7环境安装1. 卸载不要的环境2. 获取MySQL官方yum源3. 安装mysql yum 源&#xff0c;对比前后yum源4.…

Windows server 下关闭135/139/445端口

一、关闭​ ​135端口​​ 方案一 第一步 运行dcomcnfg&#xff0c;打开“组件服务”→“计算机”&#xff0c;在“我的电脑”上右键点击&#xff0c;选“属性”&#xff1b;然后点默认属性&#xff0c;把“在此计算机上启用分布式COM&#xff08;E&#xff09;”的勾去掉&a…

深入理解Spring Boot:从入门到精通

摘要 Spring Boot是一个用于构建独立、生产级别的Spring应用程序的框架。它以简化配置和快速开发为设计目标&#xff0c;使开发人员能够更专注于业务逻辑的实现。本文将深入探讨Spring Boot的核心概念、特性和最佳实践&#xff0c;帮助读者从入门到精通。 引言 在当今的软件开发…

pod 控制器 4

对于 pod 使用 yaml 文件或者 json 描述文件生成&#xff0c;之前都有提到过&#xff0c;且对 yaml 的每一个属性都有介绍到 确实是属性非常的多&#xff0c;但是我们知道如何去区分哪些是重要的部分&#xff0c;哪些是可有可无的部分之后&#xff0c;这些就变得简单了 pod 的…