UVA 10534 Wavio Sequence
来源:互联网 发布:炒外汇软件下载 编辑:程序博客网 时间:2024/05/22 14:32
题意:给你一个序列,求一个最长波浪子序列(不一定连续),满足长度为奇数2k+1 它满足前k+1个是严格递增的,后k+1是严格递减的,即相邻两个数不能相同,输出最大长度。
可以转化为经典的LIS问题,预先用O(nlogn)处理出dp1[ i ],dp2[ i ] ,dp1[ i ] 为以第i个数尾的最长递增序列长度,dp2[ i ] 为以i为开头,到n的最长递减序列长度
那么ans = max(ans, 2*min(dp1[i],dp2[i])-1)
#include <cstdio>#include <cstring>#include <cstdlib>#include <cmath>#include <iostream>#include <map>#include <vector>#include <algorithm>using namespace std;#define clr(a, x) memset(a, x, sizeof(a))#define rep(i, n) for (int i = 0; i < (int)(n); i++)#define REP(i,a,b) for(int i=a;i<=b;i++)const int maxn = 10010 ;int dp1[maxn],dp2[maxn];int a[maxn];vector<int>v1,v2;int main(){ int n; while(~scanf("%d",&n)) { for(int i=0;i<n;i++) scanf("%d",&a[i]); v1.clear(),v2.clear(); for(int i=0;i<n;i++) { int t=lower_bound(v1.begin(),v1.end(),a[i])-v1.begin(); if(t==v1.size()) { v1.push_back(a[i]); dp1[i]=v1.size(); } else { v1[t]=a[i]; dp1[i]=t+1; } t=lower_bound(v2.begin(),v2.end(),a[n-i-1])-v2.begin(); if(t==v2.size()) { v2.push_back(a[n-i-1]); dp2[n-i-1]=v2.size(); } else { v2[t]=a[n-i-1]; dp2[n-i-1]=t+1; } } int ans=0; for(int i=0;i<n;i++) ans=max(ans,2*min(dp1[i],dp2[i])-1); printf("%d\n",ans); } return 0;}
- uva 10534 Wavio Sequence
- UVA 10534 Wavio Sequence
- UVA 10534 - Wavio Sequence
- uva 10534 Wavio Sequence
- Uva-10534-Wavio Sequence
- UVa 10534 - Wavio Sequence
- uva 10534 - Wavio Sequence
- UVa 10534 - Wavio Sequence
- UVA-10534-Wavio Sequence
- UVA 10534 Wavio Sequence
- UVA 10534 Wavio Sequence
- UVA 10534 Wavio Sequence
- UVA 10534 Wavio Sequence
- UVa:10534 Wavio Sequence
- UVA - 10534 Wavio Sequence
- UVa 10534 Wavio Sequence
- uva 10534 Wavio Sequence
- uva 10534 Wavio Sequence
- 利用xstream进行java对象和xml之间的互相转化
- 利用C#线程窗口调试多线程程序
- 搜索的经典题--根据网上资料整理
- DP练习
- rman backup命令创建备份之映像副本
- UVA 10534 Wavio Sequence
- POJ 2886 Who Gets the Most Candies?(线段树)
- 将android launcher2导入eclipse中运行
- 个人问题一
- android 模拟器创建和查看sdcard
- @property 和 synthesize obj=_obj的意义详解
- [java] android单元测试
- day1 手癌菜鸟相应源码 01
- linux下磁盘工具的使用--fdisk,mount等等