Codeforces Round #615 (Div. 3)D. MEX maximizing
时间:2022-07-26
本文章向大家介绍Codeforces Round #615 (Div. 3)D. MEX maximizing,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
题目链接:https://codeforces.com/contest/1294/problem/D
题意:
给你 q 个询问和 一个 x , 每次询问输入一个数 n ,你可以把它减任意次 x 或 加任意次 x,然后添入数组,问每次询问结束时数组里最小的没出现的非负整数是多少
其实这里面的MEX函数是博弈论中sg函数的一个重要组成部分,MEX函数定义为数组里最小的没出现的非负整数
乍一看其实非常不好下手,但是条件中的任意加任意减x我们可以理解为每个数其实都具有一定的特征,我指的是ai%x,对于ai%x相同的数其实是没有差别的,因为你无限次加减嘛都一样的,所以我们就可以把每个数都压缩在[0,x-1]区间内,那我们如何检验数组里最小的没出现的非负整数呢,一个个找嘛,不会超时吗?不 我们是记忆化上一次的答案接着找,所以不会超时,只要看ans%x是不是有存在即可,但是要消耗一个ai%x,这句话需要好好理解下
其实这种题目一开始都是很难想的,感觉具体实现会非常繁琐,但是一般都要找到其不变的本质,想这道题目就是把每次需要检验的数映射到一个区间内的数,看看它存不存在,完美的利用了可以任意加任意减这个性质,我对这道题的理解大概是这样,如有不足不吝赐教
#include<bits/stdc++.h>
#define ll long long
#define rg register ll
using namespace std;
ll q,x,ans,p[400005];
int main()
{
cin>>q>>x;
for(rg i=1;i<=q;i++)
{
ll val;
cin>>val;
p[val%x]++;
while(p[ans%x])p[ans%x]--,ans++;
cout<<ans<<endl;
}
while(1)getchar();
return 0;
}
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- WordPress调用分类目录 及输出当前分类下的二级目录 和分类文章数量显示
- CSS让Li标签溢出后自动换行
- docker里运行docker命令
- 一次性实战java8 新特性(全)—— Lambda、Optional、stream、DateTime
- 面试Python高频问题汇总
- python自学成才之路 miniconda创建虚拟环境
- 逐行阅读Spring5.X源码(一) BeanDefinition,起点
- linux 磁盘占满 查看占用
- 逐行阅读Spring5.X源码(二) BeanDefinition的父接口-AttributeAccessor 、BeanMetadataElement ,进阶
- 64. Vue中的插槽slot
- 65. Vue中的作用域插槽
- SpringBoot : 全局异常配置
- springboot事务管理
- Java : 分享一个通用的获取请求客户端IP的方法
- 一套常用的css初始化样式