但是以後每一發炮彈都不能高於前一發的高度
這句話其實是提示,第乙個問題就是正向一邊lis,
第二個問題其實可以發現如果之後有比前面高的必然要多一套,因此可以倒著來一遍lis
#includeint ans=0;
int d[30];
int b[30];
int dd[30];
int rear=0;
int cnt=20;
int so(int x)//nlogn的lis
if(l>rear)rear=l;
return l;
}//找到棧中第乙個比x大的替換他,沒有就會放在末尾
int main()
int d2=rear;
rear=0;
for(int i=1;i<=ans;i++)dd[ans-i+1]=d[i];
for(int i=1;i<=ans;i++)
int d1=rear;
printf("%d\n%d",d1,d2);
}
1044 攔截飛彈
1999年noip全國聯賽提高組 時間限制 1 s 空間限制 128000 kb 題目等級 gold 題解 題目描述 description 某國為了防禦敵國的飛彈襲擊,發展出一種飛彈攔截系統。但是這種飛彈攔截系統有乙個缺陷 雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能高於前一發的...
codevs 攔截飛彈 1044
題目描述 description 某國為了防禦敵國的飛彈襲擊,發展出一種飛彈攔截系統。但是這種飛彈攔截系統有乙個缺陷 雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能高於前一發的高度。某天,雷達捕捉到敵國的飛彈來襲。由於該系統還在試用階段,所以只有一套系統,因此有可能不能攔截所有的飛彈...
wiki 1044 攔截飛彈
飛彈攔截系統中,求乙個系統能攔截飛彈的最多個數,就是求最長遞減子串行。需要的最少的系統個數 最長增長子串行長度。include include include include using namespace std vectorheigh,result,result1 int main int ar...