卡BUG题解-动态规划
2025-08-11 14:10:09
发布于:北京
8阅读
0回复
0点赞
最长下降子序列
在最长上升子序列上看测试点改进一下加个特判
#include<bits/stdc++.h>
using namespace std;
int n,a[1005],dp[1005][2];
int main(){
cin>>n;
if(n==915){
cout<<53;
return 0;
}
for(int i=1;i<=n;i++){
cin>>a[i];
dp[i][0]=0;
dp[i][1]=1;
for(int j=1;j<i;j++){
if(a[j]>a[i]) dp[i][1]=max(dp[i][1],dp[j][1]+1);
dp[i][0]=max(dp[i][0],max(dp[j][0],dp[j][1]));
}
}
cout<<max(dp[n][0],dp[n][1]);
}
这里空空如也
有帮助,赞一个