1167E - Range Deleting 双指针】的更多相关文章

题意:给出n个数的序列,并给出x,这n个数的范围为[1,x],f(L,R)表示删除序列中取值为[l,r]的数,问有几对L,R使得操作后的序列为非递减序列 思路:若[l,r]成立,那么[l,r+1],.....,[l,x]都成立,且若[l,r]成立,那么[l+1,r]不成立,不存在[l+1,r-1]成立, 所以可以看出本题区间具有单调性,可以用双指针求解 说明:\(t_i\)表示i值的最右边坐标,\(s_i\)表示i值的最左边坐标 若f(l,r)成立要满足三个条件 1.\(max(t_1,t_2,…
题意 给一个数列\(a​\),定义\(f(l,r)​\)为删除\(a​\)中所有满足\(l<=a_i<=r​\)的数后的数列,问有多少对\((l,r)​\),使\(f(l,r)​\)是一个非递减的数列 分析 若\(f(l,r)​\)合法,则\(f(l,r+1),f(l,r+2),\dots,f(l,x)​\)也都是合法的 把每个数在\(a​\)中第一次出现的位置\(S​\)和最后一次出现的位置\(T​\),若\(f(l+1,r-1)​\)合法则满足 \(max(T_{a_1},T_{a_2},…
题意 给定长度为\(n\)的数组\(a\),其中任意\(a_i \leq x\) 定义\(f(l,r)\)为删除\(a\)中值域在\([l,r]\)的数后剩余的数组. 统计满足\(1\leq l \leq r \leq x\)且\(f(l,r)\)是非严格不下降序列的数对\((l,r)\)的数量. 题解 首先想想就可以发现这个\(l\)和\(r\)是有单调性的.那思路就可以往双指针/二分那边靠一下. 现在的问题就是怎么做到\(O(1)\)或者\(O(\log n)\) 判断删除一段区间后的序列是…
传送门 参考资料: [1]:https://blog.csdn.net/weixin_43262291/article/details/90271693 题意: 给你一个包含 n 个数的序列 a,并且 max{ai} ≤ x: 定义一个操作 f(L,R) 将序列 a 中  L ≤ ai ≤ R 的数删除: 问有多少对满足条件的 (L,R) 使得执行完 f(L,R) 操作后的序列非递减: 题解: [1]博文看了一晚上,终于理解了: 枚举左区间 i,找到符合条件的最小的右区间 ki,f(1,k1),…
E. Range Deleting 题意:给出一个序列,定义一个操作f(x,y)为删除序列中所有在[x,y]区间内的数.问能使剩下的数单调不减的操作f(x,y)的方案数是多少. 解法:不会做,思维跟不上,双指针也不熟练.思路和代码都是学习https://edwiv.com/archives/587这位巨佬的. 说下我的理解:我们考虑怎样的操作[l,r]才是合理的?很容易能想到有3个条件:①删除后剩下的数字[1,l-1]的位置是单调递增,②数字[r+1,x]的位置也是单调递增的,3 数字l-1的所…
好久没更博客了,随便水一篇 E. Range Deleting 题意 给你一个长度为 \(n\) 的序列 \(a_1,a_2,\dots a_n\) ,定义 \(f(l,r)\) 为删除 \(l\le a_i\le r\) 元素后的序列.求所有 \(f(l,r)\) 单调不降序列的数量. \(n,a_i\le 10^6\) 题解 简单题,但还是调了一年(见代码注释). 考虑删除后的区间,一定是一段前缀并上一段后缀.首先找到一段合法的极长后缀,然后枚举前缀,在保证前缀合法的情况下双指针统计有多少个…
A. Telephone Number 跟之前有一道必胜策略是一样的,\(n - 10\)位之前的数存在\(8\)即可. #include <iostream> #include <cstdio> #include <cstring> using namespace std; const int N = 110; int n; char s[N]; int main(){ int T; scanf("%d", &T); while(T--){…
Educational Codeforces Round 65 (Rated for Div. 2)题解 题目链接 A. Telephone Number 水题,代码如下: Code #include <bits/stdc++.h> using namespace std; typedef long long ll; const int N = 2e5 + 5; int a[N] ; int n, T; char s[N] ; int main() { cin >> T; whil…
https://codeforc.es/contest/1167/problem/E E. Range Deleting time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output You are given an array consisting of nn integers a1,a2,…,ana1,a2,…,an and an in…
C News Distribution 并查集水题 D Bicolored RBS 括号匹配问题,如果给出的括号序列nesting depth为n,那么最终可以分成两个nesting depth为n / 2的序列. 在进行匹配的时候,如果当前栈中的左括号大于等于 n / 2,那么剩下的括号就要进行标记,最终标记和不标记的分成两个部分. E Range Deleting 对一个序列去掉一个区间范围内的数字,使得剩下的序列是一个非降序的序列. 这题是一道较好的思维题. 首先可以预处理出1到\(pre…