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和 ...
随机推荐
- tensorflow安装相关的
1 Install pip and Virtualenv sudo apt-get install python-pip python-dev python-virtualenv2 Create a ...
- windows 激活等命令
Win+R 输入:slmgr.vbs -dlv 显示:最为详尽的激活信息,包括:激活ID.安装ID.激活截止日期slmgr.vbs -dli 显示:操作系统版本.部分产品密钥.许可证状态slmgr.v ...
- 模仿快递路线图的html, css 样式
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...
- javascript Navigator对象
0.Navigator 对象包含有关浏览器的信息,通常用于检测浏览器与操作系统的版本. 1.对象属性 2. var browser=navigator.appName; var b_version=n ...
- 查看SQL语句执行时间与测试SQL语句性能
查看SQL语句执行时间与测试SQL语句性能 写程序的人,往往需要分析所写的SQL语句是否够优化.是否能提升执行效率,服务器的响应时间有多快,这个时候就需要用到SQL的STATISTICS状态值来查看了 ...
- JAVA: 接入YSDK遇到的问题
JAVA后台接口: 1, 腾讯开放平台: http://wiki.open.qq.com/wiki/%E9%A6%96%E9%A1%B5 2,YSDK介绍,大概流程: http://wiki.open ...
- Bounce 弹飞绵羊
Bounce 弹飞绵羊 题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2002 分块 将整个大区间分成若干块,每个点维护到下一个块需要跳的次 ...
- 浙大 pat 1023题解
1023. Have Fun with Numbers (20) 时间限制 400 ms 内存限制 32000 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue ...
- DOS/VBS - 用 bat 批处理 实现自动telnet
一.VBS法 1. 建立一个tel.vbs脚本 '建立Shell对象 set sh=WScript.CreateObject("WScript.Shell") WScript.Sl ...
- Erlang OTP gen_event
转自:http://www.myexception.cn/program/1569725.html Erlang OTP gen_event (0) 原英文文档:http://www.erlang.o ...