最长递增公共子序列(二)
2017-03-24 16:31
239 查看
/*描述
给定一整型数列{a1,a2...,an}(0<n<=100000),找出单调递增最长子序列,并求出其长度。
如:1 9 10 5 11 2 13的最长单调递增子序列是1 9 10 11 13,长度为5。
输入
有多组测试数据(<=7)
每组测试数据的第一行是一个整数n表示序列中共有n个整数,随后的下一行里有n个整数,表示数列中的所有元素.每个整形数中间用空格间隔开(0<n<=100000)。
数据以EOF结束
。
输入数据保证合法(全为int型整数)!
输出
对于每组测试数据输出整形数列的最长递增子序列的长度,每个输出占一行。
样例输入
7
1 9 10 5 11 2 13
2
2 -1
样例输出
5
1*/
#include <iostream>
#include <cstdio>
using namespace
std;
int main() {
int n;
int a[100001];
int sum[100001];
while (scanf("%d",&n)!=EOF)
{
for(int i=0;i<n;i++)
{
scanf("%d",&a[i]);
sum[i]=1;
}
for(int i=0;i<n;i++)
for(int j=i+1;j<n;j++)
{
if(a[j]>a[i])
{
if(sum[j]>1+sum[i]) sum[j]=sum[j];
else sum[j]=1+sum[i];
}
}
for(int i=0;i<n;i++)
{
if(sum[0]<sum[i])
sum[0]=sum[i];
}
printf("%d\n",sum[0]);
}
return
0;
}
我直接用线型动态规划,然而超时了,都是泪,大佬们说要用二分法,我下次试试。
给定一整型数列{a1,a2...,an}(0<n<=100000),找出单调递增最长子序列,并求出其长度。
如:1 9 10 5 11 2 13的最长单调递增子序列是1 9 10 11 13,长度为5。
输入
有多组测试数据(<=7)
每组测试数据的第一行是一个整数n表示序列中共有n个整数,随后的下一行里有n个整数,表示数列中的所有元素.每个整形数中间用空格间隔开(0<n<=100000)。
数据以EOF结束
。
输入数据保证合法(全为int型整数)!
输出
对于每组测试数据输出整形数列的最长递增子序列的长度,每个输出占一行。
样例输入
7
1 9 10 5 11 2 13
2
2 -1
样例输出
5
1*/
#include <iostream>
#include <cstdio>
using namespace
std;
int main() {
int n;
int a[100001];
int sum[100001];
while (scanf("%d",&n)!=EOF)
{
for(int i=0;i<n;i++)
{
scanf("%d",&a[i]);
sum[i]=1;
}
for(int i=0;i<n;i++)
for(int j=i+1;j<n;j++)
{
if(a[j]>a[i])
{
if(sum[j]>1+sum[i]) sum[j]=sum[j];
else sum[j]=1+sum[i];
}
}
for(int i=0;i<n;i++)
{
if(sum[0]<sum[i])
sum[0]=sum[i];
}
printf("%d\n",sum[0]);
}
return
0;
}
我直接用线型动态规划,然而超时了,都是泪,大佬们说要用二分法,我下次试试。
相关文章推荐
- 最大子序列和,最长递增子序列,最长公共子串,最长公共子序列,字符串编辑距离,最长不重复子串,最长回文子串
- 数组字符串那些经典算法:最大子序列和,最长递增子序列,最长公共子串,最长公共子序列,字符串编辑距离,最长不重复子串,最长回文子串
- HDU 1423 Greatest Common Increasing Subsequence 最长公共递增序列
- 最大子序列、最长递增子序列、最长公共子串、最长公共子序列、字符串编辑距离
- 最长【递增】子序列:注意没有公共,即只有一个序列。
- 最大子序列,最长递增子序列,最长公共字串,最长公共子序列,字符串编辑距离
- 最大子序列和、最长递增子序列、最长公共子串、最长公共子序列
- ] 找工作知识储备(2)---数组字符串那些经典算法:最大子序列和,最长递增子序列,最长公共子串,最长公共子序列,字符串编辑距离,最长不重复子串,最长回文子串
- 最长公共子序列|最长公共子串|最长重复子串|最长不重复子串|最长回文子串|最长递增子序列|最大子数组和
- 最大子数组和、最长递增子序列、最长公共子串、最长公共子序列、字符串编辑距离
- [置顶] 最大子序列、最长递增子序列、最长公共子串、最长公共子序列、字符串编辑距离总结
- [ACM_动态规划] UVA 12511 Virus [最长公共递增子序列 LCIS 动态规划]
- hdu 4512(最长公共递增子序列加强版)
- 最大子序列、最长递增子序列、最长公共子串、最长公共子序列、字符串编辑距离
- 最大子序列、最长递增子序列、最长公共子串、最长公共子序列、字符串编辑距离
- hdu 1423 最长递增公共子序列
- 挖坑 最大子序列、最长递增子序列、最长公共子串、最长公共子序列、字符串编辑距离
- 找工作知识储备(2)---数组字符串那些经典算法:最大子序列和,最长递增子序列,最长公共子串,最长公共子序列,字符串编辑距离,最长不重复子串,最长回文子串
- 最大子序列、最长递增子序列、最长公共子串、最长公共子序列、字符串编辑距离
- 最大子序列、最长递增子序列、最长公共子串、最长公共子序列、字符串编辑距离