繁华模拟赛 最长上升子串
2016-08-20 23:02
225 查看
#include<iostream> #include<cstdio> #include<string> #include<cstring> #include<algorithm> using namespace std; int n,a[300005],l[300005],r[300005],ans; int main(){ freopen("lis.in","r",stdin); freopen("lis.out","w",stdout); cin>>n; for(int i = 1;i <= n;i++) scanf("%d",&a[i]); for(int i = 1;i <= n;i++){ if(a[i] > a[i-1]) l[i] = l[i-1] + 1; else l[i] = 1; } r = 1; for(int i = n - 1;i >= 1;i--){ if(a[i] < a[i+1]) r[i] = r[i+1] + 1; else r[i] = 1; } for(int i = 1;i <= n;i++){ if(a[i-1] <= a[i+1] - 2) ans = max(ans,l[i-1] + r[i+1] + 1); else ans = max(ans,l[i-1] + 1); } cout<<ans; return 0; } #include<cstdio> #include<iostream> #include<algorithm> #include<cstring> #include<cmath> #include<vector> #include<queue> #include<map> #include<set> #include<stack> #include<cstdlib> #define INF 100000000 #define fi first #define se second using namespace std; typedef long long LL; typedef pair<int,int> pii; int a[300005],l[300005],r[300005]; int main() { int n,i,cou=0,ans=0; freopen("lis.in","r",stdin); freopen("lis.out","w",stdout); cin>>n; a[0]=0; a[n+1]=0; for(i=1;i<=n;i++) scanf("%d",&a[i]); for(i=1;i<=n;i++) { if(a[i]>a[i-1]) { cou++; l[i]=cou; } else cou=1,l[i]=cou; } cou=0; for(i=n;i>=1;i--) { if(a[i]<a[i+1]) { cou++; r[i]=cou; } else cou=1,r[i]=cou; } for(i=1;i<=n;i++) { if(a[i-1]+1<a[i+1]) ans=max(ans,l[i-1]+1+r[i+1]); else { ans=max(ans,l[i-1]+1); ans=max(ans,r[i+1]+1); } } cout<<ans<<endl; return 0; } // davidlee1999WTK 2014/ // srO myk Orz //ios::sync_with_stdio(false);
相关文章推荐
- hdu 4512 吉哥系列故事——完美队形I(最长上升公共子串)
- hdu 1025 Constructing Roads In JGShining's Kingdom--最长上升子串(时间优化)
- 最长上升子串
- 最大连续子序列和,最大上升子序列和,最长上升子序列,最长公共子串,最长公共子序列,最长上升公共子序列
- 【NOIP 模拟赛】改造二叉树 最长上升子序列
- [noip测试]最长上升子串(乱搞||dp)
- ju 2432Greatest Common Increasing Subsequence 最长公共上升子串-dp
- 经典字符串算法 “最长上升子序列,最大连续子序列和,最长公共子串”
- HDU 1025 Constructing Roads In JGShining's Kingdom 最长上升子串
- 左神算法 最长公共子串 最长上升子序列
- “最长上升子序列,最大连续子序列和,最长公共子串”的Java实现
- 最长上升子串
- poj2533(最长上升子串)
- HDU 3525 Orienteering (最长公共子串转化为最长上升子序列)
- “最长上升子序列,最大连续子序列和,最长公共子串”的Java实现
- poj 2533 LIS(最长上升子串)入门
- HDU 3525 Orienteering (最长公共子串转化为最长上升子序列)
- 最长公共子序列、最长上升子序列、最大子串和
- 最长公共子序列、上升子序列、最长上升子序列、最长公共子串
- 最长上升子序列nlogn算法