P1020
共20个点,对了十个。
下面是超时代码:
#include<bits/stdc++.h>
using namespace std;
int ans,sum,a[100005],f1[100005],f2[100005];
int main() {
int n = 1;
while (cin >> a[n++]) {
;
}
n--;
for (int i = 1;i < n;i++) {
f1[i] = 1;
f2[i] = 1;
for (int j = 1;j < i;j++) {
if (a[j] >= a[i]) {
f1[i] = max(f1[i],f1[j] + 1);
}
if (a[j] < a[i]) {
f2[i] = max(f2[i],f2[j] + 1);
}
}
}
for (int i = 1;i < n;i++) {
ans = max(ans,f1[i]);
}
for (int i = 1;i < n;i++) {
sum = max(sum,f2[i]);
}
cout << ans << endl << sum;
return 0;
}
为什么这题不用二分会TLE??