博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UVA 10534
阅读量:5173 次
发布时间:2019-06-13

本文共 1609 字,大约阅读时间需要 5 分钟。

UVA 10534

题意:

Wavio是整数序列,有如下特点:

1)它的长度总为奇数,即 2*n+1;
2)前(n+1) 个数构成一个严格的上升序列,后(n+1)个数构成一个严格下降的序列;
3)任意相邻两个数不会相同

多组输入,给出 n ,接下来 n 个数,求此数列中 Wavio序列的最大长度。

 

解题:

对于每个数, 求出它前面有多少数比他小,后面有多少数比他大,

两者取小,再乘2减1,然后就可以得到以这个点为中心Wavio序列的长度;

从前往后求一次LIS,再从后往前求一次;

因为d[i]表示到下标为 i 的数时LIS的长度;在第二次求的时候可以直接取小
最后循环一遍答案就是 ans = max(ans, d[i]*2-1);

用n^2的方法求LIS会超时,要用n*logn的方法求。

先开始想了半天递推没想出来呢= =

 

#include 
#define ll long longusing namespace std;const int maxn = 10010;const int INF = 0x3f3f3f3f;int d[maxn], a[maxn], h[maxn];int BFind(int c[], int len, int x){ int l = 0, r = len, mid; while (l <= r) { mid = (l+r)/2; if (x < c[mid]) r -= 1; else if (x > c[mid]) l += 1; else return mid; } return l;}int main(){ // freopen("in.txt", "r", stdin); // freopen("out.txt", "w", stdout); int n; while (scanf ("%d", &n) != EOF) { memset (h, 0, sizeof (h)); for (int i = 1; i <= n; i ++) scanf ("%d", &a[i]); int len = 1; h[0] = -INF; h[1] = a[1]; for (int i = 1; i <= n; i ++) { int x = BFind(h, len, a[i]); h[x] = a[i]; len = max (len, x); d[i] = len; } h[0] = -INF; h[1] = a[n]; len = 1; for (int i = n; i >= 1; i --) { int x = BFind(h, len, a[i]); h[x] = a[i]; len = max (len, x); d[i] = min(d[i], len); } int ans = 1; for (int i = 1; i <= n; i++) { ans = max (ans , d[i] * 2 - 1 ); } printf ("%d\n", ans ); } return 0;}

 

转载于:https://www.cnblogs.com/ember/p/5793054.html

你可能感兴趣的文章
【Mood-20】滴滤咖啡做法 IT工程师加班必备 更健康的coffee 项目经理加班密鉴
查看>>
读《构建之法-软件工程》第四章有感
查看>>
使用 Printf via SWO/SWV 输出调试信息
查看>>
.net 分布式架构之分布式锁实现(转)
查看>>
Problem E: Automatic Editing
查看>>
SpringBoot 使用 MyBatis 分页插件 PageHelper 进行分页查询
查看>>
《DSP using MATLAB》Problem 6.17
查看>>
微信公众平台开发实战Java版之如何网页授权获取用户基本信息
查看>>
一周TDD小结
查看>>
sizeof与strlen的用法
查看>>
Linux 下常见目录及其功能
查看>>
开源框架中常用的php函数
查看>>
nginx 的提升多个小文件访问的性能模块
查看>>
set&map
查看>>
集合类总结
查看>>
4.AE中的缩放,书签
查看>>
1.开发准备
查看>>
centos su命令
查看>>
CLR:基元类型、引用类型和值类型
查看>>
dubbo序列化hibernate.LazyInitializationException could not initialize proxy - no Session懒加载异常的解决...
查看>>