b - b
time limit:1000msmemory limit:32768kb64bit io format:%i64d & %i64u
submit
status
practice
hdu 1257
description
某國為了防禦敵國的飛彈襲擊,發展出一種飛彈攔截系統.但是這種飛彈攔截系統有乙個缺陷:雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能超過前一發的高度.某天,雷達捕捉到敵國的飛彈來襲.由於該系統還在試用階段,所以只有一套系統,因此有可能不能攔截所有的飛彈.
怎麼辦呢?多搞幾套系統唄!你說說倒蠻容易,成本呢?成本是個大問題啊.所以俺就到這裡來求救了,請幫助計算一下最少需要多少套攔截系統.
input
輸入若干組資料.每組資料報括:飛彈總個數(正整數),飛彈依此飛來的高度(雷達給出的高度資料是不大於30000的正整數,用空格分隔)
output
對應每組資料輸出攔截所有飛彈最少要配備多少套這種飛彈攔截系統.
sample input
8 389 207 155 300 299 170 158 65
sample output
其實這道題有很多種解法,可以用dp,但是比較起來還是貪心容易寫一些。應為給出的飛彈是按順序的,每個飛彈都要被攔住,這裡要求最小的攔截系統的個數,所以我們每次攔截飛彈時要遍歷所有的攔截系統找出飛彈和攔截系統高度差最小的那個系統,不能攔截了就把當前的系統放在陣列裡面,重新開乙個攔截系統。
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #define ll long long
#define ull unsigned long long
#define mod 1000000007
#define inf 0x7ffffff
using namespace std;
const int maxn = 2000005;
const int n = 15;
int dp[maxn];
int main()
}if(flag==0)
else dp[cot]=x;
}printf("%d\n",sum);
} return 0;
}
攔截飛彈 貪心
問題描述 某國為了防禦敵國的飛彈襲擊,開發出一種飛彈攔截系統,但是這種攔截系統有乙個缺陷 雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能高於前一發的高度。某天,雷達捕捉到敵國的飛彈來襲,由於該系統還在試用階段。所以一套系統有可能不能攔截所有的飛彈。輸入飛彈依次飛來的高度 雷達給出的高...
noip2010 飛彈攔截 (貪心)
p1810飛彈攔截 accepted 標籤 noip普及組2010 經過11 年的韜光養晦,某國研發出了一種新的飛彈攔截系統,凡是與它的距離不超過其工作半徑的飛彈都能夠被它成功攔截。當工作半徑為0 時,則能夠攔截與它位置恰好相同的飛彈。但該飛彈攔截系統也存在這樣的缺陷 每套系統每天只能設定一次工作半...
攔截飛彈(貪心 動態)
時間限制 1000 ms 記憶體限制 65536 kb 某國為了防禦敵國的飛彈襲擊,發展出一種飛彈攔截系統。但是這種飛彈攔截系統有乙個缺陷 雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能高於前一發的高度。某天,雷達捕捉到敵國的飛彈來襲。由於該系統還在試用階段,所以只有一套系統,因此有...