[ACM] CSU 1553 Good subsequence(尺取法)
来源:互联网 发布:手指长期脱皮知乎 编辑:程序博客网 时间:2024/06/06 02:25
题目地址:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1553
给定n的数的序列,求最长连续区间满足区间内的数最大值与最小值的差<=k
(尺取法)
const int maxn=10010;int num[maxn];int n,k;int MIN,MAX;int main(){ while(scanf("%d%d",&n,&k)!=EOF) { for(int i=1;i<=n;i++) scanf("%d",&num[i]); int l=1,r=1; MAX=MIN=num[1]; int ans=1; while(1) { if(r>n) break; while(1) { MAX=max(MAX,num[r]); MIN=min(MIN,num[r]); if(MAX-MIN<=k&&r<=n) ans=max(ans,r-l+1); if(MAX-MIN<=k) r++; else break; if(r>n) break; } if(r>n) break; bool first=1; while(MAX-MIN>k&&l<r)//l向右跑,Max,Min要重新计算! { l++; if(first) { MAX=num[l],MIN=num[l]; first=0; } else { MAX=max(MAX,num[l]); MIN=min(MIN,num[l]); } } for(int k=l;k<=r;k++) { MAX=max(MAX,num[k]); MIN=min(MIN,num[k]); } if(l==r) { r++; MAX=max(MAX,num[r]); MIN=min(MIN,num[r]); } } printf("%d\n",ans); } return 0;}
0 0
- [ACM] CSU 1553 Good subsequence(尺取法)
- csu 1553: Good subsequence
- CSU 1553 Good subsequence(暴力求解)
- CSU 1553-Good subsequence(RMQ)
- [ACM] POJ 3061 Subsequence (尺取法)
- [csu oj]1553: Good subsequence(水题)
- STL or Force --- CSU 1553: Good subsequence
- POJ3061---Subsequence(尺取法)
- POJ3061---Subsequence(尺取法)
- Subsequence poj3061(尺取法)
- poj3061 Subsequence(尺取法)
- CSU 1553 线段树+尺取法
- Subsequence(常用技巧(尺取法))
- POJ 3061 Subsequence (尺取法)
- poj 3061 Subsequence(尺取法)
- UVa 1121 - Subsequence(尺取法)
- POJ 3061 Subsequence(二分/尺取法)
- LA 2678 Subsequence(尺取法)
- 21. PHP 预定义变量
- s3c2440按键程序
- VC之列表控件点击事件处理
- 杭电 HDU ACM 1406 完数
- man 的用法
- [ACM] CSU 1553 Good subsequence(尺取法)
- phony的用法
- 一次linux的groupadd hang住处理
- Echart
- 第二学期第四周 1
- MMU笔记
- Linux网络设备驱动
- This does not look like a tar archive - 解决方法
- CSDN博客统计重建-数据库篇