2020.01.18【NOIP提高组】模拟B 组——总结——原子核研究

SpringBoot和Vue哈尔滨文旅系统源码 包含前后端源码、SQL初始化脚本和启动说明。JDK 17、Spring Boot、Vue;默认H2演示数据库。 立即下载

Description

最近科学家们在研究一个很庞大的原子核家族——“X家族”。他们发现这个家族中的所有原子核都非常相似,只能通过质量来区分它们。质量相差越小,它们之间相互转化的可能性就越大。
  为了深入研究这个X家族,科学家们设计了一系列的实验。其中,作为一项重要的基础设施,他们设计了一台特别的设备,可以支持以下三种操作指令:
  1. generate M——如果当前不存在质量为M的核,则生成一个,否则,该操作被忽略。
  2. remove M——如果当前存在质量为M的核,则把它移除,否则,该操作被忽略。
  3. query——输出当前存在的所有核中,最小的质量差。例如,如果当前有三种核,分别重1、7、10,那么最小的质量差就是10-7=3。特别地,如果当前不存在两种或以上的核,则输出-1。
  现在你的任务就是编程模拟这个设备,假定开始时没有任何核。

Input

输入第一行是一个整数N(1 <= N <= 100000),表示总共有多少条操作指令。
  接下来N行,每行表示一条指令,格式如上所述。其中,M是不大于100000的正整数。

Output

对于每一条query指令,输出一行,包含一个整数,即当前最小的质量差或者-1。

Sample Input

12
generate 1
remove 2
generate 1
query
generate 7
query
generate 10
query
generate 5
query
remove 7
query

Sample Output

1
6
3
2
4

Data Constraint

Hint

【数据范围】
  对于30%的数据,N <= 100。

赛时

n方暴力,但是-1后面没跟换行,幸好还得了37.5分,但也损失50分

正解

搞一个1~100000的线段树,每读入一个数就放到对应的数大小的下标,这样就维护了一个上升的序列。之后不断维护就行了。

代码

#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;

string s;
int n,k,tot;
bool vis[100007];
int mi[400007],mx[400007],ans[400007];

inline string read(){
	string a;char ch=getchar();
	while(ch<'a'||ch>'z')ch=getchar();
	while(ch>='a'&&ch<='z'){a+=ch;ch=getchar();}
	return a;
}

void updata(int num){
	if (~mi[num*2]) mi[num]=mi[num*2];
	else if (~mi[num*2+1]) mi[num]=mi[num*2+1];
	else mi[num]=-1;
	if (~mx[num*2+1]) mx[num]=mx[num*2+1];
	else if (~mx[num*2]) mx[num]=mi[num*2];
	else mx[num]=-1;
	ans[num]=min(ans[num*2], ans[num*2+1]);
	if (~mi[num*2+1]&&~mx[num*2]) ans[num]=min(ans[num],mi[num*2+1]-mx[num*2]);
}

void build(int num,int l,int r){
	mi[num]=mx[num]=-1,ans[num]=0x3f3f3f3f;
	if (l==r) return;
	int mid=(l+r)/2;
	build(num*2,l,mid),build(num*2+1,mid+1,r);
}

void insert(int num,int l,int r,int val){
	if (l==r){
		mi[num]=mx[num]=val;
		return;
	}
	int mid=(l+r)/2;
	if (val<=mid) insert(num*2,l,mid,val);
	else insert(num*2+1,mid+1,r,val);
	updata(num);
}

void del(int num,int l,int r,int val){
	if (l==r){
		mi[num]=mx[num]=-1,ans[num]=0x3f3f3f3f;
		return;
	}
	int mid=(l+r)/2;
	if (val<=mid) del(num*2,l,mid,val);
	else del(num*2+1,mid+1,r,val);
	updata(num);
}

int main(){
	scanf("%d",&n);
	memset(vis,0,sizeof(vis));
	build(1,1,100000);
	while(n!=0){
		n--;
		s=read();
		if(s[0]=='g'){
			scanf("%d",&k);
			if(!vis[k]){
				tot++;
				insert(1,1,100000,k);
				vis[k]=1;
			}
		}
		if(s[0]=='r'){
			scanf("%d",&k);
			if(vis[k]){
				tot--;
				del(1,1,100000,k);
				vis[k]=0;
			}
		}
		if(s[0]=='q'){
			if(tot>=2) printf("%d\n",ans[1]);
			else printf("-1\n");
		}
	}
}
产业园区在推动科技成果转化过程中,如何实现企业与高校的精准对接?.docx 科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。 立即下载

相关推荐

项目实战:用西门子S7协议开发基于PLC的上位机.pdf

项目实战:用西门子S7协议开发基于PLC的上位机.pdf

2020.01.18【NOIP提高组】模拟B 组——总结——9数字

Description 有一天,Merlin同学突然发现一件有趣的事情。1到100之间的整数,有一些写成带分数的形式后,刚好使用了1到9这9个数字各一次,例如对于6,可以写成:      现在给定一个1到100之间的整数,请你找出所有满足这种形式的方案,即      其中,A是给定的整数,B、C和D是正整数,并且在B、C、D三个数中,1到9这9个数字恰好都出现过一次且仅一次。 Input 输入仅一...

jay_zai的博客 332

产业园区如何高效挖掘企业技术需求并促进精准匹配?.docx

产业园区如何高效挖掘企业技术需求并促进精准匹配?

集训2020.01.18【NOIP提高组】模拟B 组分析反思(【东莞市选2009】9数字 原子核研究 探险者拉罗 【NOIP2014八校联考第3场第1试10.4】选择困难症)

这次比赛打炸了,67.5分,36名,垫底~~~最近我变水了,突然智商下降,再也找不到以前的感觉,陷入小低谷…… T1:【东莞市选2009】9数字,很简单的一道搜索题目。没想到比赛时居然打崩了,把枚举的范围打小了,答案错误37.5。比赛时没来得及检查,也促成了这一事故。总结:以后比赛无论题打没打完,最后15分钟一定要耐心检查。 T2:【东莞市选2009】原子核研究,比赛时,越看越像数据结构,这题的最...

CJZ的博客 415

国央企创新负责人如何降低科技成果转化服务成本并提升资源配置效率?.docx

国央企创新负责人如何降低科技成果转化服务成本并提升资源配置效率?

数字政府政务数据治理服务平台方案.pptx

数字政府政务数据治理服务平台方案.pptx

产业园区运营负责人如何精准匹配产业需求与科技成果?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

建筑工程业AI知识库平台规划方案(决策评审版)终稿.pptx

建筑工程业AI知识库平台规划方案(决策评审版)终稿.pptx

单相PWM整流器基于直流电流控制+虚拟dq两种闭环控制仿真【2个仿真+参考资料】

内容概要:本文介绍了单相PWM整流器的两种闭环控制策略仿真研究,即基于直流电流控制和虚拟dq变换的闭环控制方法。资源包含两个独立的Simulink仿真模型及相关参考资料,旨在对比和分析两种控制策略在动态响应、稳态精度及抗干扰能力等方面的性能差异。通过构建完整的主电路、控制回路与信号处理模块,展示了如何实现单位功率因数运行、直流侧电压稳定控制以及交流侧电流正弦化等关键目标,适用于电力电子变换器控制系统的学习与科研验证。; 适合人群:电气工程、自动化及相关专业的研究生、科研人员以及从事电力电子与新能源系统开发的工程师,具备一定的电路理论、自动控制原理和Simulink仿真基础者更佳。; 使用场景及目标:①深入理解单相PWM整流器的工作原理及其闭环控制机制;②掌握直流电流控制与虚拟dq控制两种方法的设计思路与实现步骤;③为相关课题的仿真建模、算法优化与论文写作提供参考依据和技术支持; 阅读建议:建议结合仿真模型与参考资料同步学习,重点分析控制器参数整定过程、坐标变换环节的实现方式,并尝试修改负载条件或输入扰动以测试系统鲁棒性,从而加深对控制策略本质的理解。

科技中介服务机构如何降低服务成本并提升服务响应速度?.docx

科技中介服务机构如何降低服务成本并提升服务响应速度?

科技中介服务机构如何利用智能工具提升技术需求挖掘与分析效率?.docx

科技中介服务机构如何利用智能工具提升技术需求挖掘与分析效率?

三电平Buck直流变换器双闭环、单闭环、开环仿真【附参考文献】(Simulink仿真实现)

内容概要:本文详细介绍了一套针对三电平Buck直流变换器的Simulink仿真资源,全面涵盖了开环、单闭环及双闭环控制策略的建模与仿真过程,并提供了配套参考文献以增强学术支撑。通过该仿真平台,用户能够深入理解不同控制方式对变换器输出稳定性、动态响应速度以及抗干扰能力的影响机制,尤其适用于高效率、低纹波直流电源系统的设计与性能优化研究。文档还列举了多种相关电力电子变换器的仿真案例,如三相交错并联Buck、双向Buck-Boost、LLC谐振变换器等,充分展现了电力电子系统在拓扑结构和控制技术方面的多样性与先进性,为科研与工程实践提供丰富的技术参考。; 适合人群:电气工程、自动化、电力电子及相关专业的本科生、研究生,以及从事电力变换系统研发的工程技术人员。; 使用场景及目标:① 掌握Buck类变换器的工作原理及其典型控制策略的设计方法;② 开展电力电子系统的建模与仿真实验,优化控制器参数;③ 支持课程设计、毕业设计或科研项目中的系统验证环节;④ 借助提供的仿真模板与文献资料快速搭建实验环境,提升科研效率与创新能力。; 阅读建议:建议读者结合MATLAB/Simulink环境动手实践,按照文档逐步构建仿真模型,重点剖析双闭环控制系统中电压环与电流环之间的耦合关系与协调机制,同时可拓展学习文中提及的其他变换器拓扑与先进控制方法,构建完整的电力电子系统控制知识体系。

科技中介服务机构在提供成果转化服务时,如何提升服务的专业性与客户粘性?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

二维导航网格算法可视化

二维导航网格算法可视化

医疗卫生业AI知识库数据处理及大模型训练平台规划设计方案.pptx

医疗卫生业AI知识库数据处理及大模型训练平台规划设计方案.pptx

该数据集收录了国内主要期货商品和股指指数的日频行情 商品期货覆盖有色、黑色、能化、农产品等板块,包含铜、螺纹钢、原油、豆粕等活跃合约 股指指数部分涵盖沪深300、上证50、中证500等品种 每个品种提

该数据集收录了国内主要期货商品和股指指数的日频行情。商品期货覆盖有色、黑色、能化、农产品等板块,包含铜、螺纹钢、原油、豆粕等活跃合约。股指指数部分涵盖沪深300、上证50、中证500等品种。每个品种提供统一字段:合约代码、交易日期、开盘价、最高价、最低价、收盘价、结算价、成交量和持仓量。数据按交易日顺次排列,未做复权处理,直接反映交易所原始发布信息。 数据源:CMES金融数据库

新版课件清华大学机器学习课件-012 第十二讲 条件随机场.pdf

新版课件清华大学机器学习课件-012 第十二讲 条件随机场

KernelSU.zip

KernelSU.zip

上一篇: 2020.01.18【NOIP提高组】模拟B 组——总结——选择困难症
下一篇: 2020.01.18【NOIP提高组】模拟B 组——总结——探险者拉罗
jay_zjy1022
博客等级 码龄7年 11粉丝 64原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值