返回

最长子序列(不连续)

发布时间:2022-09-26 13:11:05 153
# c++
#include<bits/stdc++.h>
using namespace std;
//最长子序列
int dp[1005],a[1005];
int lis(int x)//共x个元素
{
for(int i=0; i<x; i++)
{
dp[i]=1;//每一个元素的最初权值都为1
for(int j=0; j<i; j++)
{
if(a[j]<a[i])
dp[i]=max(dp[j]+1,dp[i]);//分布决策,把每一步的最优解保留下来
}
}
int maxx=0;
for(int i=0; i<x; i++)
{
if(maxx<dp[i])
maxx=dp[i];
}

return maxx;
}
int main()
{
int x;
while(cin>>x&&x)
{
for(int i=0; i<x; i++)
cin>>a[i];
cout<<lis(x)<<endl;
}

}
//分布决策把每一步的最优解保留下来

 

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线
下一篇
第七周周赛题解 2022-09-26 12:47:30