当前位置:网站首页>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');
}
边栏推荐
- TS 体操 &(交叉运算) 和 接口的继承的区别
- Excel的相关操作
- 软件测试界的三无简历,企业拿什么来招聘你,石沉大海的简历
- Typescript interface and the use of generics
- edge瀏覽器 路徑獲得
- [MySQL learning notes 32] mvcc
- . Net 6 learning notes: what is NET Core
- DataX self check error /datax/plugin/reader/_ drdsreader/plugin. Json] does not exist
- js对象获取属性的方法(.和[]方式)
- 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
猜你喜欢

NiO programming introduction

opencv学习笔记九--背景建模+光流估计

octomap averageNodeColor函数说明

How MySQL merges data
![[MySQL learning notes 30] lock (non tutorial)](/img/9b/1e27575d83ff40bebde118b925f609.png)
[MySQL learning notes 30] lock (non tutorial)

Qualitative risk analysis of Oracle project management system

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

Do you really think binary search is easy

数字经济时代,如何保障安全?
![DataX self check error /datax/plugin/reader/_ drdsreader/plugin. Json] does not exist](/img/17/415e66d67afb055e94a966de25c2bc.png)
DataX self check error /datax/plugin/reader/_ drdsreader/plugin. Json] does not exist
随机推荐
Iterator Foundation
MES, APS and ERP are essential to realize fine production
[CF Gym101196-I] Waif Until Dark 网络最大流
洛谷P1836 数页码 题解
1015 reversible primes (20 points) prime d-ary
When the Jericho development board is powered on, you can open the NRF app with your mobile phone [article]
Solution: système de surveillance vidéo intelligent de patrouille sur le chantier
word怎么只删除英语保留汉语或删除汉语保留英文
实现精细化生产, MES、APS、ERP必不可少
[count] [combined number] value series
Position() function in XPath uses
[KMP] template
C # create database connection object SQLite database
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
成为优秀的TS体操高手 之 TS 类型体操前置知识储备
Inspiration from the recruitment of bioinformatics analysts in the Department of laboratory medicine, Zhujiang Hospital, Southern Medical University
Type of data in energy dashboard
Le chemin du navigateur Edge obtient
Codeforces Global Round 19(A~D)
Description of octomap averagenodecolor function
https://codeforces.com/contest/1629/problem/C