当前位置:网站首页>MEX有关的学习
MEX有关的学习
2022-07-06 07:35:00 【eva_can(not)survive】
MEX是一段区间内未出现的最小正整数。
所以向该区间加一个数只有加入该区间的mex值时才能增加;
我们来看两个题目
Problem - C - Codeforceshttps://codeforces.com/contest/1699/problem/C首先我们可以思考一个区间【L,R】的mex是x,说明【0,x-1】肯定都出现过了,所以如果x的位置在该区间内部则可以在区间内任意一个未被使用的位置,如果不在该区间内就只能在那个位置不动了,因为x一旦动那么该序列的mex值肯定会受到影响。
int a[MAXN];
int pos[MAXN];
const int mod = 1e9 + 7;
void solve() {
int n;
ll ans = 1;
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
scanf("%d", a + i);
pos[a[i]] = i;
}
int mx = -INF, mn = INF;
for (int i = 0; i < n; i++) {
if (pos[i] > mn && pos[i] < mx) {
ans *= (mx - mn + 1 - i);
ans %= mod;
}
mn = min(mn, pos[i]);
mx = max(mx, pos[i]);
}
printf("%lld\n", ans);
}
然后是这一题 需要求我们能得出得最大字典序序列,所以我们b序列中得到得元素肯定是能选到得最大得mex,所以我们可以维护一个前缀mex和后缀mex,当我们的前缀mex此时等于最大的mex时候就可以加入答案数组,然后直接从下一点开始把mex值替换成后缀mex的值
struct MEX {
int cot[MAXN];
vector<int> res;
int id = 0;
void add(int x) {
cot[x]++;
res.push_back(x);
}
int mex() {
while (cot[id])
id++;
return id;
}
void clear() {
for (int v : res) {
cot[v]--;
}
id = 0;
res.clear();
}
};
MEX now, t;
int a[MAXN];
int last[MAXN];
void solve() {
now.clear();
t.clear();
int n;
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
scanf("%d", a + i);
}
for (int i = n; i >= 1; i--) {
t.add(a[i]);
last[i] = t.mex();
}
vector<int> ans;
int mx = last[1];
for (int i = 1; i <= n; i++) {
now.add(a[i]);
if (mx == now.mex()) {
ans.push_back(mx);
mx = last[i + 1];
now.clear();
}
}
printf("%d\n", ans.size());
for (int v : ans) {
printf("%d ", v);
}
putchar('\n');
}
边栏推荐
- [JDBC] quick start tutorial
- Key value judgment in the cycle of TS type gymnastics, as keyword use
- CF1036C Classy Numbers 题解
- navicat如何导入MySQL脚本
- Méthode d'obtention des propriétés de l'objet JS (.Et [] méthodes)
- 智能终端设备加密防护的意义和措施
- Pre knowledge reserve of TS type gymnastics to become an excellent TS gymnastics master
- Openjudge noi 2.1 1749: Digital Square
- 1015 reversible primes (20 points) prime d-ary
- 合规、高效,加快药企数字化转型,全新打造药企文档资源中心
猜你喜欢
Ble of Jerry [chapter]
The ECU of 21 Audi q5l 45tfsi brushes is upgraded to master special adjustment, and the horsepower is safely and stably increased to 305 horsepower
Pre knowledge reserve of TS type gymnastics to become an excellent TS gymnastics master
数字IC设计笔试题汇总(一)
If Jerry needs to send a large package, he needs to modify the MTU on the mobile terminal [article]
Jerry's ad series MIDI function description [chapter]
leecode-C語言實現-15. 三數之和------思路待改進版
Simulation of Michelson interferometer based on MATLAB
NiO programming introduction
Go learning --- use reflection to judge whether the value is valid
随机推荐
C # connect to SQLite database to read content
学go之路(一)go的基本介绍到第一个helloworld
数字经济时代,如何保障安全?
Jerry's general penetration test - do data transmission with app Communication [article]
1015 reversible primes (20 points) prime d-ary
http缓存,强制缓存,协商缓存
Ble of Jerry [chapter]
烧录场景下的源代码防泄密方案分享
NiO programming introduction
word中把帶有某個符號的行全部選中,更改為標題
Methods for JS object to obtain attributes (. And [] methods)
qt颜色与字符串、uint相互转换
软件测试界的三无简历,企业拿什么来招聘你,石沉大海的简历
Excel的相关操作
Significance and measures of encryption protection for intelligent terminal equipment
超级浏览器是指纹浏览器吗?怎样选择一款好的超级浏览器?
Scala语言学习-08-抽象类
杰理之AD 系列 MIDI 功能说明【篇】
GET/POST/PUT/PATCH/DELETE含义
2022年Instagram运营小技巧简单讲解