最长不下降/不上升子序列&&最长上升/下降子序列

struct cmp1{bool operator()(int a,int b){return a>b;}};
int main()
{
while(cin>>a[++n]);
n--;
if(n==)
{
cout<<<<endl<<<<endl;
return ;
}
dp1[]=a[];dp2[]=a[];
dp3[]=a[];dp4[]=a[];
int len1=,len2=,len3=,len4=;
for(int i=;i<=n;i++)
{
if(a[i]<=dp1[len1])dp1[++len1]=a[i];//最长不上升子序列
else
{
int j=upper_bound(dp1+,dp1+len1+,a[i],cmp1())-dp1;
dp1[j]=a[i];
}
if(a[i]>dp2[len2])dp2[++len2]=a[i];//最长上升子序列
else
{
int j=lower_bound(dp2+,dp2+len2+,a[i])-dp2;
dp2[j]=a[i];
}
if(a[i]>=dp3[len3])dp3[++len3]=a[i];//最长不下降子序列
else
{
int j=upper_bound(dp3+,dp3+len3+,a[i])-dp3;
dp3[j]=a[i];
}
if(a[i]<dp4[len4])dp4[++len4]=a[i];//最长下降子序列
else
{
int j=lower_bound(dp4+,dp4+len4+,a[i],cmp1())-dp4;
dp4[j]=a[i];
}
}
cout<<len1<<endl<<len2<<endl<<len3<<endl<<len4<<endl;
return ;
}

最长不下降/不上升子序列&&最长上升/下降子序列的更多相关文章

  1. 最长上升子序列&&最长不下降子序列

    百练2757: 题目描述: 对于给定的序列,求出最长上升子序列的长度. 题目链接:http://bailian.openjudge.cn/practice/2757 解题思路 一.动态规划 1. 找子 ...

  2. LIS LCS 最长上升子序列 最长公共子序列 ...

    最长上升子序列,问题定义:http://blog.csdn.net/chenwenshi/article/details/6027086 代码: public static void getData( ...

  3. 算法设计 - LCS 最长公共子序列&&最长公共子串 &&LIS 最长递增子序列

    出处 http://segmentfault.com/blog/exploring/ 本章讲解:1. LCS(最长公共子序列)O(n^2)的时间复杂度,O(n^2)的空间复杂度:2. 与之类似但不同的 ...

  4. 《算法导论》读书笔记之动态规划—最长公共子序列 & 最长公共子串(LCS)

    From:http://my.oschina.net/leejun2005/blog/117167 1.先科普下最长公共子序列 & 最长公共子串的区别: 找两个字符串的最长公共子串,这个子串要 ...

  5. C语言 · 最长公共子序列 · 最长字符序列

    算法提高篇有两个此类题目: 算法提高 最长字符序列   时间限制:1.0s   内存限制:256.0MB      最长字符序列 问题描述 设x(i), y(i), z(i)表示单个字符,则X={x( ...

  6. hdu6537 /// DP 最长不降子序列->最长公共子序列

    题目大意: 给定一个字符串 字符为0~9 求翻转某个区间后使得串中的最长不降子序列最长 因为字符范围为0~9 假设有一个 0 1 2 3 4 5 6 7 8 9 的序列 此时翻转某个区间得到形如 0 ...

  7. ZZNU 1719(最长上升子序列+最长下降子序列)

    先吐血一发,噗! 再吐血一次,啊啊啊啊! 好吧,做了那么多次最长上升子序列,看这题看了半天才发现还有最长下降子序列,呵呵哒! AC代码: #include<stdio.h>//老恶心#in ...

  8. 简单动态规划——最长公共子序列&&最长回文子序列&&最长上升||下降子序列

    最长公共子序列,顾名思义当然是求两个字符串的最长公共子序列啦,当然,这只是一道非常菜的动规,所以直接附上代码: #include<iostream> #include<cstdio& ...

  9. POJ 1836 Alignment(DP max(最长上升子序列 + 最长下降子序列))

    Alignment Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 14486   Accepted: 4695 Descri ...

随机推荐

  1. css之页面透明

    能使元素变的透明的方法有: 1.Opacity 2.RGBA opacity会使后代元素都透明,而RGBA不会!

  2. java支持断点续传文件上传和下载组件

    java两台服务器之间,大文件上传(续传),采用了Socket通信机制以及JavaIO流两个技术点,具体思路如下: 实现思路: 1.服:利用ServerSocket搭建服务器,开启相应端口,进行长连接 ...

  3. Codeforces Round #560 Div. 3

    题目链接:戳我 于是...风浔凌弱菜又去写了一场div.3 总的来说,真的是比较简单.......就是.......不开long long见祖宗 贴上题解-- A 给定一个数,为01串,每次可以翻转一 ...

  4. AcWing:138. 兔子与兔子(字符串Hash)

    很久很久以前,森林里住着一群兔子. 有一天,兔子们想要研究自己的 DNA 序列. 我们首先选取一个好长好长的 DNA 序列(小兔子是外星生物,DNA 序列可能包含 26 个小写英文字母). 然后我们每 ...

  5. Linux安装并使用Ludwig训练模型

    一.在Python3环境安装Ludwig: 1.使用pip安装:pip install ludwig 2.源码编译安装: git clone git@github.com:uber/ludwig.gi ...

  6. echarts 有关饼形图和map的使用技巧1(饼图)

    http://blog.csdn.net/yhn1121/article/details/52041742 先上个链接,百度无意间搜到的,写得比我全面,可以直接飞去看它: 之前写网页用过echarts ...

  7. Jmeter -- 添加断言,及断言结果

    步骤: 1. 添加响应断言(添加-断言-响应断言) Add -->  Assertions --> Response Assertion 2. 配置断言 判断响应内容中,是否包含关键字“禅 ...

  8. [CSP-S模拟测试]:停不下来的团长奥尔加(DP)

    题目传送门(内部题125) 输入格式 第一行一个整数$n$,含义同题中所述. 第二行$n$个整数,第$i$个数表示$p_i$,含义同题中所述. 输出格式 一行一个整数,表示答案对$1000000007 ...

  9. echarts之bootstrap选项卡不能显示其他标签echarts图表

    在echarts跟bootstrap选项卡整合的时候,默认第一个选中选项卡可以正常加载echarts图表,但是切换其他选项的时候不能渲染出其他选项卡echarts图表. 解决方法: 在js中添加代码: ...

  10. 在mac中,npm安装或者卸载失败,提示没有权限

    在终端输入 sudo chown -R $USER /usr/local 输入开机密码