0
已解决
https://ke.codingtang.com/#/problem/problemSub?id=2804
题目描述 Description
某国为了防御敌国的**袭击,发展出一种**拦截**。但是这种**拦截**有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的**来袭。由于该**还在试用阶段,所以只有一套**,因此有可能不能拦截所有的**。
输入**依次飞来的高度(雷达给出的高度数据是 0<=h<=50000 的正整数),计算这套**最多能拦截多少**,如果要拦截所有**最少要配备多少套这种**拦截**。
输入描述 Input Description
1 行,若干个整数(个数 ≤100000 )
输出描述 Output Description
2 行,每行一个整数,第一个数字表示这套**最多能拦截多少**,第二个数字表示如果要拦截所有**最少要配备多少套这种**拦截**。
样例输入 Sample Input
389 207 155 300 299 170 158 65
样例输出 Sample Output
6 2
#include<iostream>
#include<cstdio>
using namespace std;
int a[50001],b[50001],h[50001],n,i=1,maxn,m;
int main(){
while(cin>>a[i]){
int maxn=0;
for(int j=1;j<i;j++){
if(a[j]>=a[i]){
if(b[j]>maxn){
maxn=b[j];
}
}
}
b[i]=maxn+1;m=max(b[i],m);
int x=0;
for(int k=1;k<=n;k++){
if(h[k]>=a[i]){
if(x==0) x=k;
else if(h[k]<h[x]) x=k;
}
}
if(x==0){
n++;
x=n;
}
h[x]=a[i];
i++;
}
cout<<m<<endl<<n;
return 0;
}
超时,请问该怎么改
武奕楷在2021-10-24 16:39:37追加了内容
更改题目,以防**
武奕楷在2021-10-24 16:39:43追加了内容
更改题目,以防**
武奕楷在2021-10-26 16:43:25追加了内容
看看我的新头像
武奕楷在2021-10-29 20:42:09追加了内容
@李显晨
@王子耀
@汪恺恒
@汪宇航
@汪宇航
武奕楷在2022-11-10 20:15:29追加了内容
来个人吧,我把他给结掉,我已经做对了(都一年前的帖子了)
