/*
作者:桦清_L
*/
#include <iostream>
#include <algorithm>
using namespace std;
int a[21];
int dp1[21];
int dp2[21];
int main()
{
int n = 0, m1 = 1, m2 = 1;
while (cin>>a[n])
{
dp1[n] = 1;
dp2[n] = 1;
n++;
}
for (int i = 0; i<n; i++)
for (int j = i + 1; j<n; j++)
{
if (a[i]>a[j]) //最长递减子序列
{
dp1[j] = max(dp1[j], dp1[i] + 1);
m1 = max(m1, dp1[j]);
}
else //最长递增子序列 (每个递增点都需要加一台设备)
{
dp2[j] = max(dp2[j], dp2[i] + 1);
m2 = max(m2, dp2[j]);
}
}
cout << m1 << endl;
cout << m2 << endl;
return 0;
}
code[vs] 1044拦截导弹(最长递减+递增子序列)
最新推荐文章于 2022-01-22 21:21:01 发布