当前位置:网站首页>Mex related learning
Mex related learning
2022-07-06 07:42:00 【eva_ can(not)survive】
MEX Is the smallest positive integer that does not appear in an interval .
Therefore, adding a number to the interval is only for those who join the interval mex Value can be increased ;
Let's look at two topics
Problem - C - Codeforces
https://codeforces.com/contest/1699/problem/C First of all, we can think about an interval 【L,R】 Of mex yes x, explain 【0,x-1】 It must have happened , So if x If the position of is inside the interval, it can be at any unused position in the interval , If you are not in this range, you can only stay in that position , because x Once moved, the sequence Column mex The value will definitely be affected .
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);
}Then there is this question We need to find the largest lexicographic sequence we can get , So we b The element obtained in the sequence must be the largest one that can be selected mex, So we can maintain a prefix mex And suffixes mex, When our prefix mex This is equal to the maximum mex The answer array can be added when , Then start directly from the next point mex Replace value with suffix mex Value
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');
}
边栏推荐
- [CF Gym101196-I] Waif Until Dark 网络最大流
- Full Score composition generator: living on code
- jmeter性能测试步骤实战教程
- shu mei pai
- 学go之路(二)基本类型及变量、常量
- How to prevent Association in cross-border e-commerce multi account operations?
- Vit (vision transformer) principle and code elaboration
- leecode-C语言实现-15. 三数之和------思路待改进版
- Comparison of usage scenarios and implementations of extensions, equal, and like in TS type Gymnastics
- Summary of Digital IC design written examination questions (I)
猜你喜欢

Compliance and efficiency, accelerate the digital transformation of pharmaceutical enterprises, and create a new document resource center for pharmaceutical enterprises

Summary of Digital IC design written examination questions (I)
![When the Jericho development board is powered on, you can open the NRF app with your mobile phone [article]](/img/3e/3d5bff87995b4a9fac093a6d9f9473.png)
When the Jericho development board is powered on, you can open the NRF app with your mobile phone [article]

Simulation of Teman green interferometer based on MATLAB
![[window] when the Microsoft Store is deleted locally, how to reinstall it in three steps](/img/57/ee979a7db983ad56f0df7345dbc91f.jpg)
[window] when the Microsoft Store is deleted locally, how to reinstall it in three steps

Inspiration from the recruitment of bioinformatics analysts in the Department of laboratory medicine, Zhujiang Hospital, Southern Medical University

Solution: système de surveillance vidéo intelligent de patrouille sur le chantier
![Jerry's ad series MIDI function description [chapter]](/img/28/e0f9b41db597ff3288af431c677001.png)
Jerry's ad series MIDI function description [chapter]

qt颜色与字符串、uint相互转换

Basics of reptile - Scratch reptile
随机推荐
P3047 [USACO12FEB]Nearby Cows G(树形dp)
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
Apache middleware vulnerability recurrence
Luogu p4127 [ahoi2009] similar distribution problem solution
Excel的相关操作
(lightoj - 1410) consistent verbs (thinking)
TS 类型体操 之 extends,Equal,Alike 使用场景和实现对比
Methods for JS object to obtain attributes (. And [] methods)
Type of data in energy dashboard
[非线性控制理论]9_非线性控制理论串讲
Full Score composition generator: living on code
Google may return to the Chinese market after the Spring Festival.
Select all the lines with a symbol in word and change them to titles
Fundamentals of C language 9: Functions
Games101 Lesson 7 shading 1 Notes
[1. Delphi foundation] 1 Introduction to Delphi Programming
洛谷P4127 [AHOI2009]同类分布 题解
Opencv learning notes 9 -- background modeling + optical flow estimation
JMeter performance test steps practical tutorial
js对象获取属性的方法(.和[]方式)
https://codeforces.com/contest/1629/problem/C