P1020 飛彈攔截

2021-09-19 19:40:09 字數 1156 閱讀 7014

p1020 飛彈攔截

某國為了防禦敵國的飛彈襲擊,發展出一種飛彈攔截系統。但是這種飛彈攔截系統有乙個缺陷:雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能高於前一發的高度。某天,雷達捕捉到敵國的飛彈來襲。由於該系統還在試用階段,所以只有一套系統,因此有可能不能攔截所有的飛彈。

輸入飛彈依次飛來的高度(雷達給出的高度資料是≤50000的正整數),計算這套系統最多能攔截多少飛彈,如果要攔截所有飛彈最少要配備多少套這種飛彈攔截系統。

輸入格式:

11行,若干個整數(個數≤100000)

輸出格式:

2行,每行乙個整數,第乙個數字表示這套系統最多能攔截多少飛彈,第二個數字表示如果要攔截所有飛彈最少要配備多少套這種飛彈攔截系統。

輸入樣例#1:複製

389 207 155 300 299 170 158 65
輸出樣例#1:複製

6

2

為了讓大家更好地測試n方演算法,本題開啟spj,n方100分,nlogn200分

每點兩問,按問給分

這個題就是加上先求一遍最長遞增子串行的長度 再求一遍最長遞減子串行的長度(因題目要求,所以求的時候等於也是可以的)即可

但是我很奇怪 為什麼while(cin>>a[n++])的n會莫名的加1 所以在輸入完之後要減一

#includeusing namespace std;

int n,a[100005],ans,f[100005];

int erf(int l,int r,int x)

else

l=mid+1;

} return l;

}int erf2(int l,int r,int x)

else

r=mid-1;

} return l;

}int main()

else

}cout

f[1]=a[1];

ans=1;

for(int i=2; i<=n; i++)

else

}cout

}

P1020 飛彈攔截

題目描述 某國為了防禦敵國的飛彈襲擊,發展出一種飛彈攔截系統。但是這種飛彈攔截系統有乙個缺陷 雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能高於前一發的高度。某天,雷達捕捉到敵國的飛彈來襲。由於該系統還在試用階段,所以只有一套系統,因此有可能不能攔截所有的飛彈。輸入飛彈依次飛來的高度...

P1020 飛彈攔截

某國為了防禦敵國的飛彈襲擊,發展出一種飛彈攔截系統。但是這種飛彈攔截系統有乙個缺陷 雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能高於前一發的高度。某天,雷達捕捉到敵國的飛彈來襲。由於該系統還在試用階段,所以只有一套系統,因此有可能不能攔截所有的飛彈。輸入飛彈依次飛來的高度 雷達給出...

P1020 飛彈攔截

原題鏈結 貪心 記錄每套系統攔截過的最小高度 新來的飛彈 如果高於所有飛彈的最低高度 那就只能再加一套了嘛 如果低於某些系統的最低高度 那就貪心 把它加到 最低高度最低的一套系統內 include include include include include include include inc...