AtCoder Beginner Contest 194 E - Mex Min 思维
传送门
文章目录
- 题意:
- 思路:
题意:
给你个长度为nnn的数组,让后一个mmm,问对于所有的0<=i<n−m0<=i<n-m0<=i<n−m,求min(mex(Ai+1,...,Ai+2,Ai+M))min(mex(A_{i+1},...,A_{i+2},A_{i+M}))min(mex(Ai+1,...,Ai+2,Ai+M))。
思路:
本来以为是个主席树,以前了解到过主席树可以求mexmexmex,直接上主席树应该能过掉,虽然nnn有1e61e61e6。
当然这个题没有那么麻烦,我们只需要记一下每个数出现的位置,比如当前数为iii,由于长度是固定的mmm,如果这个数能在mexmexmex中出现,那么这个数必定存在相邻两个数(当然需要加上前后的边界)之间间隔至少mmm个数。所以我们只需要查看一下是否存在间隔至少为mmm距离即可。
有很多这一类的题都是记位置,想到这一点就很容易了。
#pragma GCC optimize(2)
#include<cstdio>
#include<iostream>
#include<string>
#include<cstring>
#include<map>
#include<cmath>
#include<cctype>
#include<vector>
#include<set>
#include<queue>
#include<algorithm>
#include<sstream>
#include<ctime>
#include<cstdlib>
#define X first
#define Y second
#define L (u<<1)
#define R (u<<1|1)
#define pb push_back
#define mk make_pair
#define Mid (tr[u].l+tr[u].r>>1)
#define Len(u) (tr[u].r-tr[u].l+1)
#define random(a,b) ((a)+rand()%((b)-(a)+1))
#define db puts("---")
using namespace std;//void rd_cre() { freopen("d://dp//data.txt","w",stdout); srand(time(NULL)); }
//void rd_ac() { freopen("d://dp//data.txt","r",stdin); freopen("d://dp//AC.txt","w",stdout); }
//void rd_wa() { freopen("d://dp//data.txt","r",stdin); freopen("d://dp//WA.txt","w",stdout); }typedef long long LL;
typedef unsigned long long ULL;
typedef pair<int,int> PII;const int N=2000010,mod=1e9+7,INF=0x3f3f3f3f;
const double eps=1e-6;int n,m;
int a[N],b[N];
vector<int>v[N];int main()
{// ios::sync_with_stdio(false);
// cin.tie(0);cin>>n>>m;for(int i=1;i<=n;i++) scanf("%d",&a[i]),v[a[i]].pb(i);for(int i=0;i<=n+1;i++){int pre=0,flag=0;v[i].pb(n+1);for(int j=0;j<v[i].size();j++){if(v[i][j]-pre>=m+1) flag=1;pre=v[i][j];}if(flag) { cout<<i<<endl; break; }}return 0;
}
/**/
AtCoder Beginner Contest 194 E - Mex Min 思维相关推荐
- AtCoder Beginner Contest 194 F - Digits Paradise in Hexadecimal 数位dp
传送门 文章目录 题意: 思路: 题意: 给一个161616进制的串NNN,让你求1−N1-N1−N中有多少个数有kkk个不同的数且没有前导零. 思路: NNN很大,有2e52e52e5了,那么就比较 ...
- AtCoder Beginner Contest 272「A」「B」「C」「D bfs」「E 思维」
AtCoder Beginner Contest 272 A - Integer Sum 题目描述: 输入n个数字,求数字和 #include <bits/stdc++.h> using ...
- AtCoder Beginner Contest 245
AtCoder Beginner Contest 245 文章目录 AtCoder Beginner Contest 245 A - Good morning B - Mex C - Choose E ...
- AtCoder Beginner Contest 197 题解(A ~ F)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 A - Rotate B - Visibility C - ORXOR D - Opposite ...
- AtCoder Beginner Contest 215 F - Dist Max 2
AtCoder Beginner Contest 215 F - Dist Max 2 平面上有一系列的点(xi,yi)(x_i,y_i)(xi,yi),定义两点(xi,yi),(xj,yj)(x ...
- Caddi Programming Contest 2021(AtCoder Beginner Contest 193) 题解
Caddi Programming Contest 2021(AtCoder Beginner Contest 193) A - Discount 打折浮点数除即可 B - Play Snuke 枚举 ...
- Mynavi Programming Contest 2021(AtCoder Beginner Contest 201)题解
文章目录 A - Tiny Arithmetic Sequence B - Do you know the second highest mountain? C - Secret Number D - ...
- KYOCERA Programming Contest 2021(AtCoder Beginner Contest 200)题解
文章目录 A - Century B - 200th ABC-200 C - Ringo's Favorite Numbers 2 D - Happy Birthday! 2 E - Patisser ...
- AtCoder Beginner Contest 081
AtCoder Beginner Contest 081 题目链接:https://abc081.contest.atcoder.jp/ 总结:四道题较为简单,比赛时切完三题rank41,然后D题读错 ...
最新文章
- 使用com.sun.imageio.plugins.png.PNGMetadata读取图片的元数据
- 使用C#中的ref关键字,用2个简单例子来说明
- ajax练习,ajax练习
- 开发日记-20190628 关键词 读书笔记《Linux 系统管理技术手册(第二版)》DAY 5
- 接口 DataOutput
- 160 - 37 CyberBlade.1
- 利用.NET绘图技术制作水晶按钮控件(转)
- Spring Security AuthenticationManagerBuilder
- Android Alertdialog之多选对话框
- 【windows】win10录屏录屏内声音
- layim之初始化配置
- Python语言程序设计基础_实验1 Python程序设计基础_答案_通识教育必修课程_上海师范大学
- html中美元符号$转义字符是 #36;
- Java编程——subString,截取当前字符串的部分内容
- 【msvcr120.dll下载】msvcr120.dll丢失怎么修复
- (四)linux下配置jenkins--构建一个自由风格的项目
- 姨妈记录软件智能测试周期,App Store 上的“Monthly Cycles - 大姨妈周期跟踪及计算器”...
- 下载并使用ffmpeg进行音频转换、音频拼接、音视频分离、音视频合成
- 在Teams中实现审批任务
- WPS如何间隔插入空白行
热门文章
- ios 销毁当前页面重新开启_问:如何强制销毁iOS中的视图控制器?
- 用户体验五要素_UX系列课(三):用户体验影响力金字塔及五大要素
- 长能耐了?想造反了?你老婆没了.......
- 找对象不能只看TA的外表
- 专为小机械迷而造,培养STEM思维,千万别错过!物理机械力学知识边玩边学,5岁以上请入手...
- 资料分享 | 数据挖掘实例资料分享来袭
- 震惊整个世界的新发现,科学界的大骗局
- 机器学习资料第3版,助你继续成长!
- 弹性式分布数据集RDD——Pyspark基础 (二)
- 为什么mysql与eclipse_mysql的用户名和密码都是正确的,但是eclipse启动说不对