当前位置:网站首页>最长上升子序列模型 AcWing 1014. 登山
最长上升子序列模型 AcWing 1014. 登山
2022-07-07 12:08:00 【T_Y_F666】
最长上升子序列模型 AcWing 1014. 登山
原题链接
算法标签
DP 线性DP 最长上升子序列
思路
分别求以i结尾上升序列,以i结尾反向上升即下降序列,以i为分割点先上升后下降序列,求最大值即可。
代码
#include<bits/stdc++.h>
#define int long long
#define rep(i, a, b) for(int i=a;i<b;++i)
#define Rep(i, a, b) for(int i=a;i>=b;--i)
using namespace std;
const int N = 1005, INF = 0x3f3f3f3f;
int f[N], f1[N], a[N];
inline int read(){
int s=0,w=1;
char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}
while(ch>='0'&&ch<='9') s=s*10+ch-'0',ch=getchar();
return s*w;
}
void put(int x) {
if(x<0) putchar('-'),x=-x;
if(x>=10) put(x/10);
putchar(x%10^48);
}
signed main(){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int n=read();
rep(i, 1, n+1){
a[i]=read();
}
int ans=0, ans1=0, ans2=0;
// 以i结尾上升序列
rep(i, 1, n+1){
f[i]=1;
rep(j, 1, i){
if(a[j]<a[i]){
f[i]=max(f[i], f[j]+1);
}
}
ans1=max(ans1, f[i]);
}
// 以i结尾反向上升即下降序列
Rep(i, n, 0){
f1[i]=1;
Rep(j, n, i+1){
if(a[j]<a[i]){
f1[i]=max(f1[i], f1[j]+1);
}
}
ans2=max(ans2, f1[i]);
}
// 先上升 后下降序列
rep(i, 1, n+1){
ans=max(ans, f[i]+f1[i]-1);
}
printf("%lld\n", max({ans, ans1, ans2}));
}
与y总代码思路一致
y总代码
#include <iostream>
#include <algorithm>
using namespace std;
const int N = 1010;
int n;
int h[N];
int f[N], g[N];
int main()
{
scanf("%d", &n);
for (int i = 0; i < n; i ++ ) scanf("%d", &h[i]);
for (int i = 0; i < n; i ++ )
{
f[i] = 1;
for (int j = 0; j < i; j ++ )
if (h[i] > h[j])
f[i] = max(f[i], f[j] + 1);
}
for (int i = n - 1; i >= 0; i -- )
{
g[i] = 1;
for (int j = n - 1; j > i; j -- )
if (h[i] > h[j])
g[i] = max(g[i], g[j] + 1);
}
int res = 0;
for (int i = 0; i < n; i ++ ) res = max(res, f[i] + g[i] - 1);
printf("%d\n", res);
return 0;
}
原创不易
转载请标明出处
如果对你有所帮助 别忘啦点赞支持哈
边栏推荐
- toRaw和markRaw
- 《厌女:日本的女性嫌恶》摘录
- 供应链供需预估-[时间序列]
- 参数关键字Final,Flags,Internal,映射关键字Internal
- Talk about pseudo sharing
- 2022-7-6 Leetcode 977. Square of ordered array
- [daily training -- Tencent select 50] 231 Power of 2
- . Net core about redis pipeline and transactions
- Is it safe to open an account online now? Which securities company should I choose to open an account online?
- 3D Detection: 3D Box和点云 快速可视化
猜你喜欢
Indoor ROS robot navigation commissioning record (experience in selecting expansion radius)
2022-7-6 sigurg is used to receive external data. I don't know why it can't be printed out
高等數學---第八章多元函數微分學1
DID登陆-MetaMask
2022-7-6 beginner redis (I) download, install and run redis under Linux
Ogre introduction
Vmware共享主机的有线网络IP地址
实现IP地址归属地显示功能、号码归属地查询
Battle Atlas: 12 scenarios detailing the requirements for container safety construction
Talk about pseudo sharing
随机推荐
requires php ~7.1 -&gt; your PHP version (7.0.18) does not satisfy that requirement
AutoCAD - how to input angle dimensions and CAD diameter symbols greater than 180 degrees?
Evolution of customer service hotline of dewu
Thread pool reject policy best practices
648. 单词替换 : 字典树的经典运用
Help tenants
Enregistrement de la navigation et de la mise en service du robot ROS intérieur (expérience de sélection du rayon de dilatation)
Build a secure and trusted computing platform based on Kunpeng's native security
Milkdown control icon
【AI实战】应用xgboost.XGBRegressor搭建空气质量预测模型(二)
Did login metamask
The reason why data truncated for column 'xxx' at row 1 appears in the MySQL import file
Oracle advanced (V) schema solution
move base参数解析及经验总结
2022-7-7 Leetcode 844.比较含退格的字符串
2022-7-6 初学redis(一)在 Linux 下下载安装并运行 redis
【日常训练--腾讯精选50】231. 2 的幂
手把手教会:XML建模
SSRF vulnerability file pseudo protocol [netding Cup 2018] fakebook1
Navicat run SQL file import data incomplete or import failed