简单的dp,只要把每个系统的导弹当前最低高度保存一下,以后得导弹都用最小值比他大的系统中最小值最小的就
ok啦。每次要么更新原来系统最低高度,要么加进去一个新系统。。。
代码:
#include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<cmath> #include<vector> #include<set> #include<string> #include<algorithm> using namespace std; int cmp(const void *a,const void *b) { return *(int *)a - *(int *)b; } int main() { int n,len,i,j; int a[100005]; int b[100005]; while(cin >> n) { len = 0; for(i=1; i<=n ;i++) { cin >> a[i]; int flag = 0; for(j=1; j<=len; j++) { if(a[i] <= b[j]) { b[j] = a[i]; flag = 1; break; } } if(!flag) { len++; b[len] = a[i]; qsort(b+1,len,sizeof(b[0]),cmp); } } cout << len << endl; } return 0; }
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-10-09 18:09:43