社区讨论
求助(全wa)
P1020[NOIP 1999 提高组] 导弹拦截参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @m56iu3ur
- 此快照首次捕获于
- 2024/12/27 16:59 去年
- 此快照最后确认于
- 2025/11/04 12:18 4 个月前
CPP
#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 5;
int a[N];
vector<int> v;
int main() {
int n = 0;
int t;
while (cin >> t)
a[++ n] = t;
for (int i = 1; i <= n; i ++) {
if (v.empty() || v.back() > a[i])
v.push_back(a[i]);
else {
int l = 1, r = v.size();
while (l < r) {
int mid = l + r >> 1;
if (a[mid] > a[i])
l = mid + 1;
else
r = mid;
}
v[l] = a[i];
}
}
cout << v.size() << endl;
v.clear();
for (int i = 1; i <= n; i ++) {
if (!v.size() || v.back() < a[i])
v.push_back(a[i]);
else {
int position = upper_bound(v.begin(), v.end(), a[i]) - v.begin();
v[position] = a[i];
}
}
cout << v.size();
return 0;
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...