2024年江苏省大学生程序设计竞赛

Problem I. 整数反应

题意:

有n个整数,从左到右编号1到n,他们有0和1两种颜色,每个整数有且只有一种颜色,将它们按照编号从1到n的顺序依次放入S1,每当一个新整数x放入S1,必须选择与其不同颜色的数y发生反应,并将x+y放入S2,不存在这样的y。则不放入S1。处理完所有元素,求出s2中最小元素的最大值

思路:

这是一道二分题,我们可以利用二分思想去按照范围取中间值,将值传入check函数后,用两个multiset(这是一个不去重排序容器)来依次存颜色不同的两类数,每存一次,判断与其颜色不同的容器是否为空,若为空,直接插入,若不为空,将我们传入的值减去存的值记为z,并在颜色不同的容器中查找一个大于等于z的最小值,若存在,则删除该元素,不存在则返回,去改变范围,当都满足时,去改变范围使得满足条件的值尽可能大。

函数补充:

erase(iterator)//删除iterator指向的值,s.lower_bound(k)//返回大于等于k的第一个元素的位置s.upper_bound(k)//返回大于k的第一个元素的位置s.empty()	//判断set容器是否为空

代码:

#include<bits/stdc++.h>
using namespace std;
struct pi{int num,col;
}a[100005];
int n;
bool check(int mid)
{multiset<int>st0,st1;for(int i=1;i<=n;i++){if(a[i].col==0){if(st1.empty()){st0.insert(a[i].num);continue;}auto t=st1.lower_bound(mid-a[i].num);if(t==st1.end())return false;elsest1.erase(t);}else{if(st0.empty()){st1.insert((a[i].num));continue;}auto t=st0.lower_bound(mid-a[i].num);if(t==st0.end())return false;elsest0.erase(t);}} return true;
}
int main()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);cin>>n;for(int i=1;i<=n;i++)cin>>a[i].num;for(int i=1;i<=n;i++)cin>>a[i].col;int l=0,r=1e9,mid;while(l<r){mid=l+r+1>>1;if(check(mid))l=mid;elser=mid-1;} cout<<l<<'\n';return 0;
}

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

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

相关文章

R19 NR移动性增强概况

随着5G/5G-A技术不断发展和业务需求的持续增强&#xff0c;未来网络的部署将不断向高频演进。高频小区的覆盖范围小&#xff0c;用户将面临更为频繁的小区选择、重选、切换等移动性过程。 为了提升网络移动性能和保障用户体验&#xff0c;移动性增强一直是3GPP的热点课题。从NR…

短链接虚拟机环境配置

先进行通用配置 VMware虚拟机中Centos最小化安装后的常用配置 配置MySQL 5.7.x 启动 MySQL 实例,复制对应的配置文件。 docker run --name mysql \ -p 3306:3306 \ -e MYSQL_ROOT_PASSWORD=root \ -d mysql:5.7.36# ~/docker/software/mysql/conf 是本地目录,没有的话需要…

部署Envoy

Envoy常用术语 envoy文档官网 Life of a Request — envoy 1.31.0-dev-e543e1 documentationhttps://www.envoyproxy.io/docs/envoy/latest/intro/life_of_a_request#terminology 基础总结 &#xff08;1&#xff09;Envoy Envoy自己本身是工作在L7层的一个proxy&#xff…

ABP框架+Mysql(一)

生成项目 通过用官网的来生成 Get Started | ABP.IO 配上官网地址&#xff0c;需要注意的是&#xff0c;数据库选择Mysql 选择完成后&#xff0c;执行页面上的两条命令 dotnet tool install -g Volo.Abp.Cli abp new Acme.BookStore -dbms MySQL -csf 生成结束后的内容 单击打…

Windows 安装虚拟机(VMware+Ubuntu18.04)

Windows下虚拟机安装 一、资源下载1.1 VMware安装包下载1.2 Ubuntu镜像下载二、电脑分区三、Vmware安装四、Vmware检查4.1 注册信息查看4.2 检查网络适配器五、Ubuntu安装5.1 创建新的虚拟机5.2 打开虚拟机这是一篇介绍在Windows系统上安装Ubuntu虚拟机的操作教程。 一、资源下…

锐捷校园网自助服务-字符过滤存在缺陷

锐捷校园网自助服务-字符过滤存在缺陷 漏洞介绍 令人感到十分遗憾的是&#xff0c;锐捷网络安全应急响应中心对漏洞上报似乎缺少了一些奖励&#xff0c;令人对官方上报漏洞失去了些许兴趣​。 该缺陷仅仅打破了安全检查防护&#xff0c;并没有造成实质性危害&#xff0c;至于…

网页开发大学生课程项目参考资料库

登录注册&#xff1a;https://www.cnblogs.com/cainiao-chuanqi/p/12700004.htmlhttps://blog.csdn.net/qq_43477721/article/details/106248821https://blog.csdn.net/qq_23853743/article/details/112604323/?utm_mediumdistribute.pc_relevant.none-task-blog-2~default~ba…

生成ssh密钥,使用ssh连接linux系统

这里写目录标题 ssh密钥大概介绍1、密钥在哪里生成&#xff08;客户端/服务器&#xff09;&#xff1f;2、密钥生成是什么样子的&#xff1f; ssh &#xff08;生成密钥、密钥传输、配置连接、连接服务&#xff09;过程1、生成密钥提示一&#xff1a;输入保存密钥的文件&#x…

每日一题《leetcode--LCR 022.环形链表||》

https://leetcode.cn/problems/c32eOV/ 我们使用两个指针&#xff0c;fast 与 slow。它们起始都位于链表的头部。随后slow 指针每次向后移动一个位置&#xff0c;而fast 指针向后移动两个位置。如果链表中存在环&#xff0c;则fast 指针最终将再次与slow 指针在环中相遇。 stru…

C语言读取ini配置文件 手动实现

在C语言中&#xff0c;你可以使用标准库中的文件操作函数来读取INI文件&#xff0c;然后解析其中的内容以找到对应的键和值。以下是一个简单的示例代码&#xff0c;演示如何实现这一过程&#xff1a; #include <stdio.h> #include <string.h>#define MAX_LINE_LEN…

AR和AP重分类(Regroup)[FAGLF101/OBBU/OBBV]

一、为什么AR和AP科目需要重分类 1.1 执行操作的前提(重要) 存在AR的当月总余额在贷方&#xff08;客户贷项凭证、预收账款等&#xff09;或AP的当月总余额在借方&#xff08;供应商贷项凭证、预收账款等&#xff09;&#xff0c;这种情况下无法真实的反映出资产和负债情况&…

阿里云语音合成TTS直播助手软件开发

阿里云的TTS比较便宜&#xff0c;效果比不了开源克隆的那种&#xff0c;比纯机器人效果好一点点 阿里云sambert https://help.aliyun.com/zh/dashscope/developer-reference/quick-start-13 Sambert系列模型 1万字1元 &#xff0c;每主账号每模型每月3万字免费 创建API-KEY htt…

Mac上搭建Python环境:深入探索与高效实践

Mac上搭建Python环境&#xff1a;深入探索与高效实践 在Mac上搭建Python环境&#xff0c;对于开发者来说是一个既具挑战性又充满乐趣的过程。本文将从四个方面、五个方面、六个方面和七个方面详细阐述如何在Mac上成功搭建Python环境&#xff0c;并帮助您更好地理解和应用Pytho…

Linux——多线程(二)

在上一篇博客中我们已经介绍到了线程控制以及对应的函数调用接口&#xff0c;接下来要讲的是真正的多线程&#xff0c;线程安全、线程互斥、同步以及锁。 一、多线程 简单写个多线程的创建、等待的代码 #include<iostream> #include<pthread.h> #include<un…

【C++】list的使用(下)

&#x1f525;个人主页&#xff1a; Forcible Bug Maker &#x1f525;专栏&#xff1a; STL || C 目录 前言&#x1f525;操作list对象的接口函数&#xff08;opeartions&#xff09;spliceremoveremove_ifuniquemergesortreverse 结语 前言 本篇博客主要内容&#xff1a;STL…

Flutter 中的 DecoratedSliver 小部件:全面指南

Flutter 中的 DecoratedSliver 小部件&#xff1a;全面指南 Flutter 是一个功能强大的 UI 框架&#xff0c;它提供了丰富的组件和灵活的布局系统来帮助开发者构建美观且高效的用户界面。在 Flutter 的滚动组件体系中&#xff0c;DecoratedBox 是一个用于装饰普通小部件的装饰器…

MySQL 自定义函数(实验报告)

一、实验名称&#xff1a; 自定义函数 二、实验日期&#xff1a; 2024年 6 月 1 日 三、实验目的&#xff1a; 掌握MySQL自定义函数的创建及调用&#xff1b; 四、实验用的仪器和材料&#xff1a; 硬件&#xff1a;PC电脑一台&#xff1b; 配置&#xff1a;内存&#…

如何区分解析亚马逊网站产品搜索结果页HTM代码中广告位( Sponsored)和自然位的产品ASIN及排名

在开发亚马逊产品广告排名插件的时候需要通过页面HTML代码分别找出属于广告位和自然搜索结果的产品ASIN及排名&#xff0c;所以需要找到区分广告位和自然搜索结果的HTML代码属性&#xff1a; 所有搜索结果页的产品不管是广告位还是自然位&#xff0c;都包括在 标签里&#xff…

RTPS协议之Behavior Module

目录 交互要求基本要求RTPS Writer 行为RTPS Reader行为 RTPS协议的实现与Reader匹配的Writer的行为涉及到的类型RTPS Writer实现RTPS WriterRTPS StatelessWriterRTPS ReaderLocatorRTPS StatefulWriterRTPS ReaderProxyRTPS ChangeForReader RTPS StatelessWriter BehaviorBe…

【Vue】Table组件动态最大高度

在使用Vue框架开发项目时&#xff0c;经常会遇到需要调整组件尺寸以适应不同屏幕大小或窗口尺寸的需求。本文将介绍如何为el-table组件动态设置最大高度&#xff0c;以实现响应式布局。 首先&#xff0c;我们需要在模板中为el-table组件添加一个max-height属性&#xff0c;并将…