最少攔截系統
time limit:1000ms memory limit:32768k
某國為了防禦敵國的飛彈襲擊,發展出一種飛彈攔截系統。但是這種飛彈攔截系統有乙個缺陷:雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能超過前一發的高度。某天,雷達捕捉到敵國的飛彈來襲,因為該系統還在試用階段,所以只有一套系統,因此有可能不能攔截所有的飛彈。怎麼辦呢?多搞幾套系統唄!你說說倒蠻容易,成本呢?成本是個大問題啊。所以俺就到這裡來求救了,請幫助計算一下最少需要多少套攔截系統呢?
輸入若干組資料。每組資料報括:飛彈總個數(正整數),飛彈依次飛來的高度(雷達給出的高度資料是不大於30000的正整數,用空格分隔)。對應每組資料,輸出攔截所有飛彈最少要配備多少套這種飛彈攔截系統。
8 389 207 155 300 299 170 158 65
2
#include
#include
using namespace std;
/*解決思想:貪心 思想的運用(3.每一次總是選擇當前最適合的系統)
1.假設原來有x套系統,對於每一顆飛來的飛彈
2.若當前的x套系統 不能攔截這顆飛彈,再建立一套系統攔截
3.如果x套系統至少有一套可以攔截該飛彈,則尋找一套系統(該系統的當前高
度與飛彈系統最接近的,這樣可以保證所有系統的高度降低最少,從而可以攔截
更多飛彈,就可以達到建立更少系統的目的)去攔截
*/ int systems[10000],t;
bool ishold(int h)
}return false;
}//尋找最適合的高度
int find(int h) } }
return in;
}int main()else
}cout<
}return 0;
}
ACM 最少攔截系統
某國為了防禦敵國的飛彈襲擊,發展出一種飛彈攔截系統.但是這種飛彈攔截系統有乙個缺陷 雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能超過前一發的高度.某天,雷達捕捉到敵國的飛彈來襲.由於該系統還在試用階段,所以只有一套系統,因此有可能不能攔截所有的飛彈.怎麼辦呢?多搞幾套系統唄 你說說...
最少攔截系統(貪心)
description 某國為了防禦敵國的飛彈襲擊,發展出一種飛彈攔截系統.但是這種飛彈攔截系統有乙個缺陷 雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能超過前一發的高度.某天,雷達捕捉到敵國的飛彈來襲.由於該系統還在試用階段,所以只有一套系統,因此有可能不能攔截所有的飛彈.怎麼辦呢...
最少攔截系統(貪心)
g 最少攔截系統 time limit 1000ms memory limit 32768kb 64bit io format i64d i64u submit status description 某國為了防禦敵國的飛彈襲擊,發展出一種飛彈攔截系統.但是這種飛彈攔截系統有乙個缺陷 雖然它的第一發炮...