Codeforces Round 858:B. Mex Master
一、来源:Problem - B - Codeforces
二、题面

三、思路
题面:n个非负正数,随机排列并由相邻两个数相加构成
n-1个数并进行升序排列,求从0开始的第一个MEX(Minimum Excluded)两种思考模型:
首先可知0的数至少要过一半,接下来
- 递归:考虑1是否能以相同情况考虑,失败
- 分类讨论:有限类
考虑了大部分情况,主要说几个错误点
- 对于0的分布
- 初始想法是只要0能被全包裹,则MEX=0,将
0 0 1考虑为了一个特例 - 实际上,将
0 0 1例扩展,只要0的个数小于等于1的个数最终结果即为0
- 初始想法是只要0能被全包裹,则MEX=0,将
- 对于一边比另一边多一个:还是简化为超过一半的好
- 基于0的个数已经超过
n/2,不可能出现3的情况
- 对于0的分布
四、代码
#include <bits/stdc++.h>
#define eleType int
#define INF 0x3f3f3f3f
typedef long long ll;
using namespace std;
const int N=2e5+10;
eleType arr[N];
int main(){
int t;
cin >> t;
while(t--){
// code
int n;
cin >> n;
memset(arr,0,sizeof(int)*N);
for(int i=0;i<n;i++){
int temp;
cin >> temp;
arr[temp]++;
}
// 0 0 1模型可以延伸,0 0 1 1 0也是0,因此想要MEX=0,则的0个数<=(n+1)/2
int ans=0,left=n-arr[0];
if((n+1)/2<arr[0]){ //一边比另一边多一个:可以将逻辑简化为超过一半
if(left==0){
ans=1;
}else if(left==arr[1]){
// if(arr[1]==1){
ans=2;
// }
// else{
// ans=3; //不可能有3,因为1一件超过一半了,所以至少能将1拆开
// }
}else{
ans=1;
}
}else{
ans=0;
}
cout << ans << endl;
}
return 0;
}
Codeforces Round 858:B. Mex Master的更多相关文章
- Educational Codeforces Round 23 F. MEX Queries 离散化+线段树
F. MEX Queries time limit per test 2 seconds memory limit per test 256 megabytes input standard inpu ...
- Codeforces Round #804 (Div. 2) C(组合 + mex)
Codeforces Round #804 (Div. 2) C(组合 + mex) 本萌新的第一篇题解qwq 题目链接: 传送门QAQ 题意: 给定一个\(\left [0,n-1 \right ] ...
- Codeforces Round #247 (Div. 2) ABC
Codeforces Round #247 (Div. 2) http://codeforces.com/contest/431 代码均已投放:https://github.com/illuz/Wa ...
- Codeforces Round #556 题解
Codeforces Round #556 题解 Div.2 A Stock Arbitraging 傻逼题 Div.2 B Tiling Challenge 傻逼题 Div.1 A Prefix S ...
- Codeforces Round #435 (Div. 2)【A、B、C、D】
//在我对着D题发呆的时候,柴神秒掉了D题并说:这个D感觉比C题简单呀!,,我:[哭.jpg](逃 Codeforces Round #435 (Div. 2) codeforces 862 A. M ...
- Codeforces Round #466 (Div. 2) 题解940A 940B 940C 940D 940E 940F
Codeforces Round #466 (Div. 2) 题解 A.Points on the line 题目大意: 给你一个数列,定义数列的权值为最大值减去最小值,问最少删除几个数,使得数列的权 ...
- Codeforces Round #649 (Div. 2)
Codeforces Round #649 (Div. 2) -- WKL \(\mathcal{A}\)题: \(\mathrm{XXXXX}\) Greedy implementation *12 ...
- Codeforces Round #792 (Div. 1 + Div. 2) A-E
Codeforces Round #792 (Div. 1 + Div. 2) A-E A 题目 https://codeforces.com/contest/1684/problem/A 题解 思路 ...
- Codeforces Round #792 (Div. 1 + Div. 2) // C ~ E
比赛链接:Dashboard - Codeforces Round #792 (Div. 1 + Div. 2) - Codeforces C. Column Swapping 题意: 给定一个n*m ...
- 刷题记录:Codeforces Round #724 (Div. 2)
Codeforces Round #724 (Div. 2) 20210713.网址:https://codeforces.com/contest/1536. div2明显比div3难多了啊-只做了前 ...
随机推荐
- vue2-ace-editor代码编辑器使用
安装 npm安装 npm install --save-dev vue2-ace-editor 如果需要拷贝到内网,需要 npm安装后 将 vue2-ace-editor 和 brace( vue2- ...
- 中兴BE7200Pro+的WIFI 7路由器开箱
上一个讨论的帖子:https://www.chiphell.com/thread-2573626-1-1.html . 对应小米WIFI 7路由器BE6500 Pro开箱的帖子:https://www ...
- 苹果新一代“超级芯片”曝光:M3 Ultra最高可达32核CPU
近日,据外媒消息,苹果计划在2024年推出新一代"超级芯片"M3 Ultra. 据悉,M3 Ultra将大幅增加CPU核心数量,同时GPU核心数量也将适度增加. 具体来说,M3 U ...
- 一个关于用netty的小错误反思
一个关于用netty的小认知 在使用netty时,观看了黑马的netty网课,没想就直接用他的依赖了 依赖如下 <dependency> <groupId>io.netty&l ...
- ASCII、Unicode、UTF8 10年后,史无前例,自己用js实现《专题3》
我自己史无前例的开发了一个网页小工具,可以利用这个工具 直接查询到 一个字符的unicode二进制的定义,和utf8格式下内存中 存储的二进制. =========================== ...
- .NET Core开发实战(第4课:Startup:掌握ASP.NET Core的启动过程)--学习笔记
04 | Startup:掌握ASP.NET Core的启动过程 新建一个 ASP.NET Core Web 应用程序 选择 API public class Program { public sta ...
- 序列化协议:Protobuf入门
偶然在网上清华大学电子系科协软件部2023暑期培训的内容中发现了这个东西,后面随着了解发现以后学习有关项目时会用到,便写个随笔记录一下这次学习的经历.作为一种序列化协议,与使用文本方式存储的xml.j ...
- 《深入理解Java虚拟机》(四) 调优工具、指令
目录 JVM 调优的概念 jps 1.options 功能选项 2.hostid jstat 1.vmid格式 2.interval 和 count 3.option jinfo jmap jhat ...
- 之前练手使用基于gin的go web项目
目录结构: `-- demo |-- cmd | |-- api.go | `-- root.go |-- common | `-- consts | `-- consts.go |-- config ...
- nmap top N端口获取
使用nmap 扫描时可能会扫描tcp top100 top1000 端口, 有时需要去配置文件提取,配置文件路径/usr/share/nmap/nmap-services, 具体根据实际安装情况调整: ...