波浪子序列 Wavio Sequence UVA10534 动态规划 最长上升子序列变形
来源:互联网 发布:哪个软件可以手绘 编辑:程序博客网 时间:2024/04/27 21:49
此题的大意是给定一个序列,求一个最长的奇数子序列,使得前k个序列上升,后k个序列下降。
此题的解法是从左往右求一次最长上升子序列,然后从右往左再求一次最长上升子序列,分别记录在状态变量d1[i],d2[i],求min(d1[i],d2[i])的最大值即可,答案就是2*min-1。
#include<iostream>#include<cstdio>#include<algorithm>#include<cstdlib>#include<cstring>using namespace std;#define MAXN 10010#define INF 1000000000int seq[MAXN];int d1[MAXN],d2[MAXN];int g[MAXN];int main(){int n;while(scanf("%d",&n)==1){for(int i=1;i<=n;i++)scanf("%d",&seq[i]); for(int i=1;i<=n;i++)g[i]=INF;memset(d1,0,sizeof(d1));for(int i=1;i<=n;i++){int k=lower_bound(g+1,g+1+n,seq[i])-g;d1[i]=k;g[k]=seq[i];}for(int i=1;i<=n;i++)g[i]=INF;memset(d2,0,sizeof(d2));for(int i=n;i>=1;i--){int k=lower_bound(g+1,g+1+n,seq[i])-g;d2[i]=k;g[k]=seq[i];}int ans=0;for(int i=1;i<=n;i++){ ans=max(ans,min(d1[i],d2[i]));}cout<<2*ans-1<<endl;}}
- 波浪子序列 Wavio Sequence UVA10534 动态规划 最长上升子序列变形
- uva10534 - Wavio Sequence(动归,最长上升子序列)
- uva10534 - Wavio Sequence O(nlgn)的最长上升子序列
- UVA10534 Wavio Sequence(二分 + 最长上升子序列)
- UVA 10534 Wavio Sequence 最长上升子序列
- 【UVA】10534 - Wavio Sequence(LIS最长上升子序列)
- uvaoj 10534 Wavio Sequence 最长上升子序列(LIS)
- uva 10534 Wavio Sequence (最长上升子序列)
- UVa 10534 - Wavio Sequence (最长上升子序列LIS)
- UVA - 10534 Wavio Sequence (二分法最长上升子序列)
- 动态规划:最长上升子序列
- 动态规划-最长上升子序列LIS
- 动态规划求最长上升子序列
- 【算法】动态规划 最长上升子序列
- 动态规划:最长上升子序列
- poj2533 动态规划+最长上升子序列
- POJ2533 动态规划 (最长上升子序列)
- 动态规划--最长上升子序列
- Install WordPress 3.6.1 Using LAMP or LEMP on RHEL, CentOS & Fedora
- hdu4496 D-City
- C++从文件中查找特定的字符串,并提取该字符串
- 梦中梦
- PMP证书原形图
- 波浪子序列 Wavio Sequence UVA10534 动态规划 最长上升子序列变形
- XMLHTTPRequest实现带进度条的文件上传
- 我希望早几年知道的 5 个 Unix 命令
- calendar显示为中文修改fullcalendar.js
- ubuntu 解压到指定目录
- js笔记
- POJ 1743 Musical Theme(后缀数组,3级)
- j2ee中常用的五种远程调用协议
- 调用系统的方法,打开文件的源代码