题意:给定一个序列,求一个最长的序列,使得他的前半部分是递增的,而后半部分是递减的,且两部分的长度一样。

思路:经典的LIS问题,和openjudge登山问题一样,前后各扫一遍,找到前置和倒置的LIS,然后遍历一遍找到最大的ans即可

code:

#include <bits/stdc++.h>
using namespace std;const int N=10005;
const int INF=0x3f3f3f3f;int v[N],l[N],r[N],f[N];
int main()
{int n,ans;while (~scanf("%d",&n)){for (int i=1;i<=n;i++) scanf("%d",&v[i]),f[i]=INF;f[0]=0;for (int i=1;i<=n;i++){int p=lower_bound(f,f+1+n,v[i])-f;l[i]=p;f[p]=v[i];}for (int i=1;i<=n;i++) f[i]=INF;f[0]=0;for (int i=n;i>=1;i--){int p=lower_bound(f,f+1+n,v[i])-f;r[i]=p;f[p]=v[i];}ans=0;for (int i=1;i<=n;i++) ans=max(ans,min(l[i],r[i]));printf("%d\n",ans*2-1);}
}

uva 10534——Wavio Sequence相关推荐

  1. UVA 10534 - Wavio Sequence

    这道题的意思是让我们求一个上升子序列 + 一个下降字序列,且两边的长度是相等的,由于用正常的 O(n2) 算法会 TLE ,所以这里我们采用二分法求最长上升子序列,这里需要利用两个栈来储存" ...

  2. UVA 10534 Wavio Sequence DP LIS

    题意:求一个波浪子序列,就是是前一半是上升子序列,后一半是下降子序列(子序列的长度必须为奇数). 分别从左右两个方向求LIS,然后在统计最大值就行了 //#pragma comment(linker, ...

  3. 【UVa】Wavio Sequence(dp)

    http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&p ...

  4. UVA10534 Wavio Sequence【LIS+DP】

    Wavio is a sequence of integers. It has some interesting properties. • Wavio is of odd length i.e. L ...

  5. uva 1626 - Brackets sequence

    // // main.cpp // uva 1626 - Brackets sequence/*这一题应该是经典的矩阵类似问题.显然 需要使用两个变量来表示最终的结果.设 dp[i][j]表示第i个位 ...

  6. UVA - 1626 Brackets sequence

    题目链接 给你一个括号序列,输出一个前后括号都匹配的补全序列,且补的字符尽量少. 对一个串s来说,只会有两种情况:1.(t)或[t]转移到t 2.有两个字符,分段转移.为了保证是最小值,一定要考虑情况 ...

  7. UVA - 1594 Ducci Sequence

    /*做这题时的心路历程其实挺有趣的一开始看到说Ducci序列最终要么全0,要么循环,我在想:要怎么判断循环呢?是不是还得记录下循环节什么的?是该用数组记录循环节吗?还是想要让我们利用STL来记录?后来 ...

  8. 紫书动规 例题9-10 UVA - 1626 Brackets sequence 区间dp

    题目链接: https://vjudge.net/problem/UVA-1626 题意: 题解: dp[i][j]:= i~j需要最少的括号 区间dp: dp[i][j] = min(dp[i][j ...

  9. UVA 10706 Number Sequence

    题意:给出一串那样的数字,很有规律的,总共有2147483647位,然后问你第 n 位上的数字是多少. 思路:具体做法是用两个数组保存上面的数据. 1.[] 数组表示前面所有段的位数,a[i]表示前i ...

最新文章

  1. 用Python拨打电话
  2. python 之 分割参数getopt
  3. View onRestoreInstanceState ClassCastException
  4. 宏BOOST_TEST_ALL_WITH的用法实例
  5. c语言中dfs用pos做参数,LeetCode算法练习——深度优先搜索 DFS(2)
  6. JavaScript 获取元素及事件
  7. [NOI2002]荒岛野人 数论
  8. TensorFlow 教程 --教程--2.4MNIST 进阶
  9. 一个求整系数多项式的全部有理根的方法
  10. 【JAVA】Socket文件上传遇到的问题!~
  11. PLC可编程控制器综合实训装置
  12. 微信中无法下载APP的解决办法
  13. android自动划屏实现,OSC首发:android中的左右滑屏实现By ViewPager
  14. Android WebRTC 入门教程(一) -- 使用相机
  15. 通过计算机名查找当前域用户名,局域网中怎样通过IP查找计算机名
  16. 应广单片机定时器中断配置
  17. Android手机文件及文件夹目录详解
  18. 小米9008授权 授权救砖 教程
  19. html5自动吸附,基于HTML5Canvas的3D渲染引擎界面以及吸附等效果的运用-
  20. 关于文件“Makefile”的修改时间在将来 XXX S后的问题

热门文章

  1. 说下Java堆空间结构,及常用的jvm内存分析命令和工具
  2. 在Android项目中使用AspectJ
  3. 转载:tensorflow保存训练后的模型
  4. POJ1789-Truck History .
  5. Asp.net MVC 4新项目中创建area的后续操作
  6. 打印到类阵列的给定序列的所有排列的n皇后问题
  7. HDU 5371 Manacher Hotaru's problem
  8. 字体缩放 SignedDistanceField
  9. URAL 1830 Help in the RNOS 思路,读题 难度:1
  10. TClientDataSet使用要点