csu 1553: Good subsequence (最长连续子序列)
2015-03-29 23:18
204 查看
http://acm.csu.edu.cn/OnlineJudge/problem.php?cid=2071&pid=6
题意:有一个由n个数组成的序列
要求出一个满足 max-min<=k 的最长子序列
思路:(听说数据大的情况可以用单调栈解决 但是我只是纯粹暴力了)
首先枚举左界 把max和min都赋值为 a[i]
再枚举右界 每次判断max-min是否小于等于k
求出最大值
题意:有一个由n个数组成的序列
要求出一个满足 max-min<=k 的最长子序列
思路:(听说数据大的情况可以用单调栈解决 但是我只是纯粹暴力了)
首先枚举左界 把max和min都赋值为 a[i]
再枚举右界 每次判断max-min是否小于等于k
求出最大值
#include<cstdio> #include<iostream> #include<cstring> #include<cmath> #include<stdlib.h> #include<algorithm> #include<queue> #include<stack> #include<ctype.h> using namespace std; int a[10000+100]; int main() { int n,k; int i,j; while(scanf("%d%d",&n,&k)!=EOF) { int ans=1; for(i=0;i<n;i++) scanf("%d",&a[i]); for(i=0;i<n;i++) { if(n-i<ans) break; int temp=1; int maxx=a[i]; int minn=a[i]; for(j=i+1;j<n;j++) { if(a[j]>maxx) { maxx=a[j]; } else if(a[j]<minn) { minn=a[j]; } if(maxx-minn>k) break; temp++; } if(ans<temp) ans=temp; } printf("%d\n",ans); } return 0; }
相关文章推荐
- CSU 1225 最长上升子序列并记录其个数
- 线段树区间合并+最长连续递增子序列——HDU 3308
- hdu 1422(环上最长连续子序列)
- CSU 1120 病毒(经典模板例题:最长公共递增子序列)
- 矩阵中最长连续递增子序列
- 最长连续递增子序列
- 最长连续递增子序列
- 湖北民族学院oj 1668 之 最长连续递增子序列
- CSU 1807: 最长上升子序列~ 分类讨论
- 3. Longest Substring Without Repeating Characters(求最长的不重复的连续的子序列。)
- hdu 1422(环上最长连续子序列)
- HDU 3308——LCIS(线段树,区间合并,最长连续递增子序列)
- 最长连续递增子序列
- HDU 3308 LCIS(最长连续上升子序列)
- HDU 3308 LCIS(最长连续上升子序列)(线段树区间合并)
- hdu1069-最长连续上升子序列
- 天梯赛2 重现5-4 最长连续递增子序列
- hdu3308 LCIS--区间更新 & 最长连续上升子序列
- 动态规划——最长连续子序列和+最大子矩阵和
- HDU 3308 线段树。。最长连续上升子序列