拦截导弹
拦截导弹
https://ac.nowcoder.com/acm/problem/16810
#include<bits/stdc++.h> using namespace std; const int maxn=1e6+7; typedef long long ll; int a[maxn],que[maxn]; int main() { int n=0,len,i; while(~scanf("%d",&a[++n])); --n; for(i=n,len=0;i;--i) { if(a[i]>=que[len]) que[++len]=a[i]; else { int cnt=upper_bound(que+1,que+1+len,a[i])-que; que[cnt]=a[i]; } } printf("%d\n",len); for(i=1,len=0;i<=n;++i) { if(a[i]>que[len]) que[++len]=a[i]; else { int cnt=lower_bound(que+1,que+1+len,a[i])-que; que[cnt]=a[i]; } } printf("%d\n",len); }
牛客算法竞赛入门课第六节列题、习题 文章被收录于专栏
wu~