题目描述某国为了防御敌国的导弹袭击发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度但是以后每一发炮弹都不能高于前一发的高度。假设某天雷达捕捉到敌国的导弹来袭。由于该系统还在试用阶段所以只有一套系统因此有可能不能拦截所有的导弹。输入 �n 个导弹依次飞来的高度给出的高度数据是不大于 3000030000 的正整数计算如果要拦截所有导弹最少要配备多少套这种导
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int n;
cin >> n;
vector<int> heights(n);
for (int i = 0; i < n; i++) {
cin >> heights[i];
}
vector<int> dp(n, 1);
for (int i = 1; i < n; i++) {
for (int j = 0; j < i; j++) {
if (heights[i] <= heights[j]) {
dp[i] = max(dp[i], dp[j] + 1);
}
}
}
int maxSystem = *max_element(dp.begin(), dp.end());
cout << maxSystem << endl;
return 0;
}
``
原文地址: https://www.cveoy.top/t/topic/hRUG 著作权归作者所有。请勿转载和采集!