OpenJudge 012 攔截飛彈

2021-10-04 22:49:24 字數 1174 閱讀 2567

總時間限制: 1000ms 記憶體限制: 65536kb

描述

某國為了防禦敵國的飛彈襲擊,開發出一種飛彈攔截系統。但是這種飛彈攔截系統有乙個缺陷:雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能高於前一發的高度。某天,雷達捕捉到敵國的飛彈來襲,並觀測到飛彈依次飛來的高度,請計算這套系統最多能攔截多少飛彈。攔截來襲飛彈時,必須按來襲飛彈襲擊的時間順序,不允許先攔截後面的飛彈,再攔截前面的飛彈。

輸入

輸入有兩行,

第一行,輸入雷達捕捉到的敵國飛彈的數量k(k<=25),

第二行,輸入k個正整數,表示k枚飛彈的高度,按來襲飛彈的襲擊時間順序給出,以空格分隔。

輸出

輸出只有一行,包含乙個整數,表示最多能攔截多少枚飛彈。

樣例輸入

8

300 207 155 300 299 170 158 65

樣例輸出

6
思想

本體分解為i與後面的數比較,如果比後面的數大,那麼在這個位置上就可以得到的後面那個數後面的所有個數,然後不斷的取最大的乙個,在結束內層迴圈時加上自身的乙個,然後不斷比較得到最大值即可。

#include

#include

using

namespace std;

intmain()

maxnum[k -1]

=1;//最後乙個邊界值為1,即最後乙個位置只能有乙個

int max =1;

/* 本體分解為i與後面的數比,如果比後面的數大,那麼

在這個位置上就可以得到的後面那個數後面的所有個數,

然後不斷的取最大的乙個,在結束內層迴圈時加上自身的乙個即可

然後不斷比較得到最大值即可

*/for

(int i = k -

2; i >-1

;--i)

cout << max;

delete

ar;

delete

maxnum;

return0;

}

openjudge 數字統計

總時間限制 1000ms 記憶體限制 100000kb 描述輸入n個整數,統計每個數出現的次數.輸入 第一行是乙個整數n 1 n 1000 接下來n行每行乙個整數.輸出 第一行輸出總共有多少個不同的整數.接下來每行輸出乙個整數及這個整數出現的次數,用空格分隔.輸出的整數的順序與它們在輸入中第一次出現...

Openjudge 括號匹配

這個用了普通的迴圈,資料量不是很大的話效率還是不錯的,如果資料比較大的話,換別的方法可能效率會高一點。思路很簡單 以字串中是否還存在沒有匹配過的 作為這個字串已經處理完畢的標誌。1,讀入字串,並進行處理,把所有不是 和 的字元都轉換成空格。2,從開始掃瞄字串,如果掃瞄到 記錄 的位置,直到掃瞄到 3...

openjudge 移動路線

描述 桌子上有乙個m行n列的方格矩陣,將每個方格用座標表示,行座標從下到上依次遞增,列座標從左至右依次遞增,左下角方格的座標為 1,1 則右上角方格的座標為 m,n 小明是個調皮的孩子,一天他捉來乙隻螞蟻,不小心把螞蟻的右腳弄傷了,於是螞蟻只能向上或向右移動。小明把這只螞蟻放在左下角的方格中,螞蟻從...