nefu 179 珠子(最长递增子序列问题)
Description
小林有一串珠子,是由很多个大小不同的珠子串联在一起组成的圆环型的,且其中每个珠子的大小可以用int型的整数来表示。小林有一个爱好就是数珠子,他想数那些位置相邻而且大小只相差1的珠子组成单调递增或单调递减的最长串是多长,比如说现在他有5个珠子,大小分别为2 3 4 9 22,那么这串珠子最长的符合要求的串的长度为3,而如果是 3 4 3 9 22 这个的话那么最长的有两条,3 4 和 4 3,但是长度相同答案为2。
Input
数据有多个样例,每个样例的第一行给出一个n(0< n < 10),代表这串珠子的总长度(珠子是圆环型的首尾相连的),接着第二行给出n个数字,代表这n个珠子的大小。
Output
请输出这串珠子中最长的符合要求的子串的长度
Sample Input
5
2 3 4 9 22
5
3 4 9 22 2
5
3 4 3 9 22
Sample Output
3
3
2 // 注意题意,珠子是首尾相连的
//max()函数
#include <iostream>
#include <cmath>
using namespace std; int main()
{
int data[],lp_1[],lp_2[];
int n,ans_1,ans_2,ans;
while(cin>>n)
{
lp_1[]=;lp_2[]=;
for(int i=;i<n;i++)
cin>>data[i];
for(int i=;i<n;i++)
data[i+n]=data[i];
for(int i=;i<*n;i++)
{
lp_1[i]=;
lp_2[i]=;
for(int j=;j<i;j++)
{
if(data[i]-data[j]==&&lp_1[j]+>lp_1[i])
lp_1[i]=lp_1[j]+;
if(data[j]-data[i]==&&lp_2[j]+>lp_2[i])
lp_2[i]=lp_2[j]+;
}
}
ans_1=lp_1[];
ans_2=lp_2[];
for(int i=;i<*n;i++)
{
ans_1=max(ans_1,lp_1[i]);
ans_2=max(ans_2,lp_2[i]);
}
//cout<<ans_1<<" "<<ans_2<<endl;
ans=max(ans_2,ans_1);
cout<<ans<<endl;
}
return ;
}
nefu 179 珠子(最长递增子序列问题)的更多相关文章
- (转载)最长递增子序列 O(NlogN)算法
原博文:传送门 最长递增子序列(Longest Increasing Subsequence) 下面我们简记为 LIS. 定义d[k]:长度为k的上升子序列的最末元素,若有多个长度为k的上升子序列,则 ...
- 最长公共子序列(LCS)和最长递增子序列(LIS)的求解
一.最长公共子序列 经典的动态规划问题,大概的陈述如下: 给定两个序列a1,a2,a3,a4,a5,a6......和b1,b2,b3,b4,b5,b6.......,要求这样的序列使得c同时是这两个 ...
- 最长递增子序列 O(NlogN)算法
转自:点击打开链接 最长递增子序列,Longest Increasing Subsequence 下面我们简记为 LIS. 排序+LCS算法 以及 DP算法就忽略了,这两个太容易理解了. 假设存在一个 ...
- 51nod 1134 最长递增子序列
题目链接:51nod 1134 最长递增子序列 #include<cstdio> #include<cstring> #include<algorithm> usi ...
- 动态规划 - 最长递增子序列(LIS)
最长递增子序列是动态规划中经典的问题,详细如下: 在一个已知的序列{a1,a2,...,an}中,取出若干数组组成新的序列{ai1,ai2,...,aim},其中下标i1,i2,...,im保持递增, ...
- 最长递增子序列问题 nyoj 17单调递增最长子序列 nyoj 79拦截导弹
一, 最长递增子序列问题的描述 设L=<a1,a2,…,an>是n个不同的实数的序列,L的递增子序列是这样一个子序列Lin=<aK1,ak2,…,akm>,其中k1< ...
- 2.16 最长递增子序列 LIS
[本文链接] http://www.cnblogs.com/hellogiser/p/dp-of-LIS.html [分析] 思路一:设序列为A,对序列进行排序后得到B,那么A的最长递增子序列LIS就 ...
- 【动态规划】拦截导弹_dilworth定理_最长递增子序列
问题 K: [动态规划]拦截导弹 时间限制: 1 Sec 内存限制: 256 MB提交: 39 解决: 10[提交][状态][讨论版] 题目描述 张琪曼:“老师,修罗场是什么?” 墨老师:“修罗是 ...
- COGS731 [网络流24题] 最长递增子序列(最大流)
给定正整数序列x1,..., xn (n<=500).(1)计算其最长递增子序列的长度s.(2)计算从给定的序列中最多可取出多少个长度为s的递增子序列.(3)如果允许在取出的序列中多次使用x1和 ...
随机推荐
- Error js内置错误 js处理错误流程 Throw语句
Exceptional Exception Handling in JavaScript MDN资料 Anything that can go wrong, will go wrong. ...
- 浅谈angularJS指令的属性
restrict – 这个属性用来指定指令在HTML中如何使用(指令的四种表示方式).我们使用 ‘AE’,这个指令可以被当作新的HTML元素或者属性来使用.如果要允许指令被当作class来使用,我们将 ...
- 精简CSS
1.简化你的注释 2.简化颜色代码 3.使用单行属性代替多行属性 4.值为0时可省略单位 5.同时设置多个元素的属性用分组形式 6.删除空白和换行 7.设定过期时间
- 腾讯应用开发3006 : name lookup timed out 错误
昨天到今天发现应用访问不正常,用户发表数据很少,一查日志,QQ的 openApi 返回的结果全是 name lookup timed out,莫名其妙. 在服务器上 ping , nslookup , ...
- Struts2-2.了解struts.xml的查找顺序
默认namespace的package <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE s ...
- 【Sort】RadixSort基数排序
太晚了,明天有时间在写算法思路,先贴代码 ------------------------------------------------ 刚答辩完,毕业好难,感觉自己好水 ------------- ...
- 推荐一篇很好的介绍wpf dependency property的文章
http://www.codeproject.com/Articles/140620/WPF-Tutorial-Dependency-Property
- JavaScript原生对象总纲
一. javascript之Array类 创建js数组两种方式: var arr = []; 或var arr = new Array(); ()里可以指定长度,也可以不指定,指不指定都无所谓,因为 ...
- Spring入门学习(一)
Spring的主要功能是控制反转和面向切面编程,下面我们就来编写第一个spring的程序来体验一下控制反转 首先是加载配置文件 <?xml version="1.0" enc ...
- 理解WebKit和Chromium(电子书)
前言 基础篇 WebKit, WebKit2, Chromium和Chrome介绍 WebKit和Blink WebKit和Chromium代码目录结构介绍 WebKit和Chromium功能模块 ...