首页 > 其他分享 >1935B - Informatics in MAC

1935B - Informatics in MAC

时间:2024-04-01 14:59:50浏览次数:22  
标签:vis2 int memset 1935B MAC 数组 Informatics sizeof MEX

这道题目考察了前缀和的思想以及对数学思维的理解,首先对于任意一组数组

0 1 7 1 0 1 0 3

考虑一下他们之间的MEX怎么分割,假设有两个数组{1,x},{x+1,n}要使得他们之间的MEX一样,则他们每个数组中都含有1~MEX-1个数(一定)那么把两个数组合并呢

两个数组合并之后MEX不变,则往下递推,假设分成k组,那么k-1组也一定满足该条件,换句话说,只要有k组能成立,那么把一整个数组分成2组也一定成立,那么就从1~n一个个枚举,判断1~i和i+1~n之间是否存在相同的MEX,如果存在,那么就一定成立,否则输出-1

#include <bits/stdc++.h>
using namespace std;
const int N =1e5+5;
int a[N];
int vis1[N],vis2[N],st[N],st2[N];
int n;

void solve(){
	cin>>n;
	for(int i=1;i<=n;i++)cin>>a[i];
	memset(vis1,0,sizeof(vis1));
	memset(vis2,0,sizeof(vis2));
	memset(st,0,sizeof(st));
	memset(st2,0,sizeof(st2));
	
	int min1=0;
	for(int i=1;i<=n;i++){
		if(!vis1[a[i]]){
			vis1[a[i]]=1;
		}
		while(vis1[min1]){
			min1++;
		}
		st[i]=min1;
	}
	
	int min2=0;
	for(int i=n;i>=1;i--){
		if(!vis2[a[i]]){
			vis2[a[i]]=1;
		}
		while(vis2[min2]){
			min2++;
		}
		st2[i]=min2;
	}
	bool flag=false;
	int pos;
	for(int i=1;i<n;i++){
		if(st[i]==st2[i+1]){
			flag=true;
			pos=i;
			break;
		}
	}
	
	if(!flag)cout<<-1<<"\n";
	else {
		cout<<2<<"\n";
		cout<<1<<" "<<pos<<"\n";
		cout<<pos+1<<" "<<n<<"\n";
	}
	
}

int main(){
	ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
	int t;cin>>t;
	while(t--){
		solve();
	}
	
	return 0;
}

标签:vis2,int,memset,1935B,MAC,数组,Informatics,sizeof,MEX
From: https://blog.csdn.net/2302_81761369/article/details/137230424

相关文章

  • WingPro for Mac(Python开发工具)
    了解更多相关内容请点击此处WingProforMac是一款Python开发环境,适用于Mac平台。它由Wingware公司开发,提供了一系列强工具,可以帮助Python开发人员轻松地编写、调试和测试Python代码。WingProforMac具有一个直观的用户界面,支持多种编程语言和框架,例如Django、Flask、Pyramid......
  • (译) 理解 Elixir 中的宏 Macro, 第二部分:宏理论
    ElixirMacros系列文章译文[1](译)UnderstandingElixirMacros,Part1Basics[2](译)UnderstandingElixirMacros,Part2-MicroTheory[3](译)UnderstandingElixirMacros,Part3-GettingintotheAST[4](译)UnderstandingElixirMacros,Part4-Div......
  • dbt macro 的执行简单说明
    BaseAdapter中包含了一个adapter实际运行依赖的转换,链接处理,当然也包含了macro的执行,具体方法有直接的execute_macroModelRunner中的materialization_macro(run命令)还有run-operation中RunOperationTask的_run_unsafe方法ModelRunnercall_macro处理参考调用......
  • macOS 磁盘设备文件命名规则
    macOS系统使用不同于Linux的磁盘设备命名规则。在macOS中,磁盘设备和分区被命名并通过/dev目录访问,类似于Linux和UNIX系统。但是,macOS的命名规则遵循特定的模式。macOS磁盘设备命名概述:1.主磁盘设备在macOS中,主磁盘通常被命名为/dev/disk0。这个设备是你的主启......
  • 查看Centos 网卡MAC地址
    方法一:IP命令iplinkshow如果知道具体网卡如eth0,iplinkshoweth0或者ipaddr如果知道具体网卡如eth0,ipaddrshoweth0方法二:ifconfig命令ifconfig-a如果知道具体网卡如eth0,ifconfigeth0以上方法在输出中,你会看到网卡的MAC地址列在link/ether后面。例如:ether00......
  • CleanMyMac X2024免费永久注册码许可证号
    CleanMyMacX4.15.2的更新内容非常全面,涵盖了功能增强、性能优化以及界面设计改进等多个方面。这款专为macOS系统设计的清理和优化工具,通过此次更新进一步提升了用户体验和系统性能。CleanMyMacX2024全新版下载如下:https://wm.makeding.com/iclk/?zoneid=49983首先,从功......
  • CleanMyMac X最新4.15.2中文破解版安装包下载
    CleanMyMacX4.15.2的更新内容非常全面,涵盖了功能增强、性能优化以及界面设计改进等多个方面。这款专为macOS系统设计的清理和优化工具,通过此次更新进一步提升了用户体验和系统性能。CleanMyMacX2024全新版下载如下:https://wm.makeding.com/iclk/?zoneid=49983首先,从功......
  • dbt this macro 处理简单说明
    dbtthismacro提供了一种方便的对于当前模型展现的方法,可以使用在增量模型以及pre&posthooks中this实际是就类似ref('<the_current_model>')是一个relation包含了database,schema以及模型标识使用示例一个增量处理的,基于this可以方便的引用模型{{config(mater......
  • MAC M1使用docker 安装es kibana ik分词器
    1.拉取elasticsearch镜像资源,本人下载的是8.6.2版本dockerpullelasticsearch:8.6.22.在本机中提前创建好yml文件elasticsearch.ymlhttp:  host:0.0.0.0xpack.security.enabled:falsexpack.security.enrollment.enabled:truexpack.security.http.ssl: enabl......
  • Mac日常使用踩坑记
    破解软件绕过签名的办法,应用已损坏sudoxattr-rdcom.apple.quarantine/Applications/xxxxxx.appmac终端在粘贴时有多余字符:00~~01之类的printf'\e[?2004l'Mac终端滚轮不滚页面,而是滚历史命令tputrmcup安装homebrew/bin/bash-c"$(curl-fsSLhttps://raw.gith......