当前位置:网站首页>ACM最长不下降子序列问题
ACM最长不下降子序列问题
2022-08-09 11:02:00 【抓个马尾女孩】
给定一串数,求出其最长不下降子序列
本题是经典的一道dp线性问题,定义一个三维数组,a[i][1]表示数值,a【i】【2】表示i到n最长的子序列长度,a【i】【3】表示i子序列后跟的数的位置。
#include<iostream>
using namespace std;
int a[100][10],k,l;
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i=i+1)
{
cin>>a[i][1];
a[i][2]=1;
a[i][3]=0;
}
for(int i=n-1;i>=1;i=i-1)
{
k=0;
l=0;
for(int j=i+1;j<=n;j=j+1)
if((a[j][1]>a[i][1])&&a[j][2]>l)
{
k=j;
l=a[j][2];
}
if(l>0)
{
a[i][2]=l+1;
a[i][3]=k;
}
}
k=1;
for(int i=1;i<=n;i=i+1)
if(a[i][2]>a[k][2])
k=i;
cout<<"max= "<<a[k][2]<<endl;
while(k!=0)
{
cout<<a[k][1]<<' ';
k=a[k][3];
}
return 0;
}
边栏推荐
猜你喜欢
FreeRTOS任务创建源码分析
Netscope:神经网络结构在线可视化工具
商业技术解决方案与高阶技术专题 - 数据可视化专题
The complete grammar of CSDN's markdown editor
聚类了解
程序员的专属浪漫——用3D Engine 5分钟实现烟花绽放效果
prometheus接入mysqld_exporter
美的数字化平台 iBUILDING 背后的技术选型
研发需求的验收标准应该怎么写? | 敏捷实践
Preparation for gold three silver four: how to successfully get an Ali offer (experience + interview questions + how to prepare)
随机推荐
双向链表的各种操作
Looper 原理浅析
详细的np.matmul / np.dot / np.multiply / tf.matmul / tf.multiply / *
Qt 国际化翻译
二进制加法
GOPROXY 中国代理
electron 应用开发优秀实践
去除蜂窝状的噪声(matlab实现)
kubernetes中不可见的OOM
Getting Started with MNIST Machine Learning
一键完成物联网产品注册,快速体验在线调试设备
备份mongodb数据库(认证)
cnn的输入输出
WebSocket
margin出bug---margin失效
无重复字符的最长子串
OpenSSF的开源软件风险评估工具:Scorecards
基于STM32F103移植FreeRTOS
caffe ---make all editing error
依赖注入(Dependency Injection)框架是如何实现的