UVa10534 Wavio Sequence
来源:互联网 发布:程序员 刷题 哪个好 编辑:程序博客网 时间:2024/04/30 01:59
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1475
题目大意:
给定一串数字,求一个子串满足一下要求:子串的长度是L=2*n+1,前n+1个数字是严格的递增序列,后n+1个数字是严格的递减序列,例如123454321就是满足要求的一个子串,输出满足要求的最长的L,
思路:就是从头到尾求一遍lis,然后再从尾到头求一遍lis。这里可以用一个两个数组来分别保存从前到后和从后到前的相应位置的最长字串的的长度。#include<iostream>#include<stdio.h>#include<math.h>#include<string.h>using namespace std;int a1[100005],b1[100005],a2[100005],b2[100005];int st[100005];int dp[100005];int n,len1,len2;void solve(){int i,j;st[1]=a1[1];b1[1]=1;for(i=2;i<=n;i++){if(a1[i]>st[len1])j=++len1;else{int le=0;int ri=len1;while(le<ri){int mid=(le+ri)/2;if(st[mid]>=a1[i])ri=mid;elsele=mid+1;}j=le;}st[j]=a1[i];b1[i]=j;}/*printf("len1=%d\n",len1);for(i=1;i<=len1;i++){printf("%d ",st[i]);}printf("\n");*/st[1]=a2[1];b2[1]=1;for(i=2;i<=n;i++){if(a2[i]>st[len2]){j=++len2;}else{int le=0;int ri=len2;while(le<ri){int mid=(le+ri)/2;if(st[mid]>=a2[i])ri=mid;elsele=mid+1;}j=le;}st[j]=a2[i];b2[i]=j;}/*printf("len2=%d\n",len2);for(i=1;i<=len2;i++){printf("%d ",st[i]);}printf("\n");*/}int main(){while(scanf("%d",&n)!=EOF){int i,j;memset(dp,0,sizeof(dp));for(i=1,j=n;i<=n;i++,j--){scanf("%d",&a1[i]);a2[j]=a1[i];b2[i]=b1[i]=0;}len1=len2=1;solve();int ans=0;for(i=1,j=n;i<=n;i++,j--){ans=max(ans,min(b1[i],b2[j])*2-1);}printf("%d\n",ans);}}
0 0
- Wavio Sequence UVA10534
- UVA10534 wavio sequence
- UVA10534 Wavio Sequence
- uva10534---Wavio Sequence
- UVa10534 Wavio Sequence
- UVa10534 Wavio Sequence
- UVA10534 - Wavio Sequence - 动态规划
- UVA10534-Wavio Sequence(LIS)
- UVA10534-----Wavio Sequence-----动态规划之LIS
- UVA10534[Wavio Sequence] 动态规划 LIS
- uva10534 - Wavio Sequence(动归,最长上升子序列)
- uva10534 - Wavio Sequence O(nlgn)的最长上升子序列
- UVA10534 Wavio Sequence(二分 + 最长上升子序列)
- 波浪子序列 Wavio Sequence UVA10534 动态规划 最长上升子序列变形
- Wavio Sequence
- Wavio Sequence
- uva 10534 Wavio Sequence
- UVa 10534. Wavio Sequence
- 最长上升子序列(LIS)长度的O(nlogn)算法
- Study
- Learning Modern 3D Graphics Programming笔记
- 2-2 Time类的定义
- android媒体--stagefright概述【一】
- UVa10534 Wavio Sequence
- [Python]Python配置
- 三种循环的练习——将1到100以内包含6的数字打印出来
- 常用的内存管理算法的简要介绍
- HTML - html之间传值并接收
- XAMPP 修改MYSQL密码以及无法启动MYSQL的解决方案
- oracle 拼接备忘录
- poj1005
- 读取文件内容