这是拦截导弹的整个代码,
大犇不必看贪心(第二个)。
```
#include<iostream>
#include<cstdio>
using namespace std;
int n=0,s[100000]= {},a[100000]= {},head[10000]={},len=1,num=1;
int upper_bound(int x,int y,int v) {
int m;
while(x<y) {
m=x+(y-x)/2;
if(s[m]==v)return m;
if(s[m]<v)y=m;
else x=m+1;
}
return y;
}
int main() {
while(cin>>a[n])n++;
head[0]=a[0],s[0]=a[0];
for(int i=1; i<n; i++) {
bool ok=1;
if(a[i]<=s[len-1])s[len++]=a[i];
else s[upper_bound(0,len-1,a[i])]=a[i];
for(int j=0; j<num; j++) {
if(head[j]>=a[i]) {
head[j]=a[i];
ok=false;
break;
}
}
if(ok) {
head[num++]=a[i];
}
}
cout<<len<<endl;
cout<<num<<endl;
return 0;
}
```
by zach0914 @ 2019-01-16 19:31:58
希望尽快回复,感谢回复的大犇!
by zach0914 @ 2019-01-16 19:32:50