UVA - 10534 Wavio Sequence
来源:互联网 发布:seo文章编辑器 编辑:程序博客网 时间:2024/05/29 09:00
题目大意:给出一个字符串, 找出一个奇数的子序列,子序列的前版部分要递增, 后半部分要递减, 且递增和递减的长度要相等, 要求输出最长满足条件的子序列的长度。
解题思路:题目可以转化成求字符串的最长递增子序列, 正向求一遍, 反向求一遍, 然后将相应位置的最长值取最小的进行比较(min(a[i], b[n - i - 1]), 因为要求递增部分和递减部分的长度要求相等, 但是长的部分可以取短, 所以取两边最小的),找出最大的Max, 输出 2 * Max - 1(去除中点)。
#include <cstdio>#include <algorithm>using namespace std;int main() {int n;while (scanf("%d", &n) != EOF) {int DP[2][10050] = {0},A[10050], F[20050] = {0},MAX = 0, MAX1 = 0, MAX2 = 0;for (int i = 1; i <= n; i++) {scanf("%d", &A[i]);int x = lower_bound(F+1, F+MAX1+1, A[i]) - F;MAX1 = max(MAX1, x);F[x] = A[i];DP[0][i] = x;}for (int i = n; i >= 1; i--) {int x = lower_bound(F+1, F+MAX2+1, A[i]) - F;MAX2 = max(MAX2, x);F[x] = A[i];DP[1][i] = x;}for (int i = 1; i <= n; i++)MAX = max(MAX, min(DP[0][i], DP[1][i]));printf("%d\n", MAX * 2 - 1);} return 0;}
0 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
- UVA - 825 Walking on the Safe Side
- 北京初“探”,还是初“谈”
- 士兵杀敌(一)
- javascript Enumerator
- (hdu step 7.1.7)Wall(求凸包的周长——求将所有点围起来的最小凸多边形的周长)
- UVA - 10534 Wavio Sequence
- MongoDB 集群介绍
- 下载安装Android Studio详细教程
- 【分层图】分层图学习笔记
- VA - 10651 Pebble Solitaire
- 数据库原理与设计P24习题2答案
- JavaScript实现表格排序
- 矩阵分解在推荐系统中的应用
- dbscan基于密度的空间聚类算法