CodeForces 602 B.Approximating a Constant Range(尺取+set)
2018-03-27 15:26
471 查看
A - Approximating a Constant Range
CodeForces - 602B 尺取,用set维护区间最大值和最小值,极差不超过1则更新答案然后区间右端点右移,否则左端点右移,时间复杂度O(nlogn)算是将那个过程用set模拟一边,但是不需要一直for循环去找 。
int a[100005]; multiset<int>s; multiset<int>::iterator it; int main() { int n; scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d",&a[i]); s.insert(a[1]); int r=n; int l=1; int flag=2;//当前的点 int ans=1; while(l<=r) { it=s.end(); it--; int t=*s.begin(); int t1=*it; if(t1-t>1) { it=s.find(a[l]); s.erase(it); l++; } else { ans=max(ans,flag-l); if(flag<=n) { s.insert(a[flag]); flag++; } else break; } } printf("%d\n",ans); return 0; }
相关文章推荐
- CodeForces 602 B.Approximating a Constant Range(尺取+set)
- 602B - Approximating a Constant Range (STL 贪心)
- Codeforces 602B - Approximating a Constant Range(DP)
- [CodeForces 602B]Approximating a Constant Range[构造]
- 【32.22%】【codeforces 602B】Approximating a Constant Range
- 【CodeForces 602B】G - 一般水的题2-Approximating a Constant Range
- 【CodeForces 602C】H - Approximating a Constant Range(dijk)
- CodeForces 602B_Approximating a Constant Range_DP
- Codeforces 602B - Approximating a Constant Range
- Codeforces Round #333 (Div. 2) B. Approximating a Constant Range (线段树区间最值)
- Codeforces Round #333 (Div. 2) B. Approximating a Constant Range (dp)
- Codeforces Round #333 (Div. 2) B. Approximating a Constant Range
- Codeforces Round #333 (Div. 2)B. Approximating a Constant Range(ST+二分||set暴力)
- CF-Approximating a Constant Range
- Codeforces Round #333 (Div. 2) B. Approximating a Constant Range
- FZU 2016 summer train I. Approximating a Constant Range 单调队列
- Codeforces Round #333 (Div. 2) B. Approximating a Constant Range
- CF Round#333 Div2 B. Approximating a Constant Range
- 【Codeforces Round 333 (Div 2)B】【贪心 多指针】Approximating a Constant Range 给定数组 相邻元素波动为1 求差值不超1的最长序连续子序列
- CF-Approximating a Constant Range