唔,最长不下降子序列与最长上升子序列曾是困扰蒟蒻多时的一个问题,应该也有一些人分不清这2个的求法吧。

  首先n^2算法肯定是都能分清的,因为不下降和上升的区别是连续的2个能不能相等,只需要在判断的时候判一下是不是相等就可以了。

  最长不下降子序列代码:

 1 #include<iostream>
 2 #include<cstdio>
 3 using namespace std;
 4 int n;
 5 int a[1100];
 6 int f[1100];
 7 int main()
 8 {
 9     scanf("%d",&n);
10     for(int i=1;i<=n;++i)scanf("%d",&a[i]);
11     for(int i=1;i<=n;++i)
12     {
13         f[i]=1;
14         for(int j=1;j<i;++j)
15             if(a[i]>=a[j]&&f[j]+1>f[i])f[i]=f[j]+1;
16     }
17     int ans=0;
18     for(int i=1;i<=n;++i)
19         ans=max(ans,f[i]);
20     printf("%d",ans);
21     return 0;
22 }
View Code

相关文章:

  • 2021-12-26
  • 2022-12-23
  • 2021-12-18
  • 2022-12-23
  • 2021-04-01
  • 2021-10-13
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-09-22
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案