当前位置:网站首页>最长上升子序列模型 AcWing 482. 合唱队形
最长上升子序列模型 AcWing 482. 合唱队形
2022-07-07 12:08:00 【T_Y_F666】
最长上升子序列模型 AcWing 482. 合唱队形
原题链接
算法标签
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", n-ans);
}
与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", n - res);
return 0;
}
原创不易
转载请标明出处
如果对你有所帮助 别忘啦点赞支持哈
边栏推荐
- Take you to master the three-tier architecture (recommended Collection)
- "New red flag Cup" desktop application creativity competition 2022
- AI人才培育新思路,这场直播有你关心的
- Help tenants
- When FC connects to the database, do you have to use a custom domain name to access it outside?
- "Song of ice and fire" in the eleventh issue of "open source Roundtable" -- how to balance the natural contradiction between open source and security?
- FC连接数据库,一定要使用自定义域名才能在外面访问吗?
- Excerpt from "misogyny: female disgust in Japan"
- MySQL error 28 and solution
- requires php ~7.1 -&gt; your PHP version (7.0.18) does not satisfy that requirement
猜你喜欢
Realize the IP address home display function and number home query
How to check the ram and ROM usage of MCU through Keil
C语言数组相关问题深度理解
2022-7-6 sigurg is used to receive external data. I don't know why it can't be printed out
Take you to master the three-tier architecture (recommended Collection)
SSRF vulnerability file pseudo protocol [netding Cup 2018] fakebook1
Vmware共享主机的有线网络IP地址
手把手教会:XML建模
Indoor ROS robot navigation commissioning record (experience in selecting expansion radius)
Mathématiques avancées - - chapitre 8 différenciation des fonctions multivariables 1
随机推荐
数据库系统概论-第一章绪论【概念模型、层次模型和三级模式(外模式、模式、内模式)】
Leetcode simple question sharing (20)
Laravel5 call to undefined function OpenSSL cipher IV length() error php7 failed to open OpenSSL extension
Redis只能做缓存?太out了!
实现IP地址归属地显示功能、号码归属地查询
室內ROS機器人導航調試記錄(膨脹半徑的選取經驗)
TPG x AIDU | AI leading talent recruitment plan in progress!
Transferring files between VMware and host
. Net core about redis pipeline and transactions
Data refresh of recyclerview
Drawerlayout suppress sideslip display
供应链供需预估-[时间序列]
2022-7-7 Leetcode 34.在排序数组中查找元素的第一个和最后一个位置
高等數學---第八章多元函數微分學1
flask session伪造之hctf admin
Regular expression integer positive integer some basic expressions
Help tenants
云计算安全扩展要求关注的安全目标和实现方式区分原则有哪些?
Leecode3. Longest substring without repeated characters
【堡垒机】云堡垒机和普通堡垒机的区别是什么?