題目鏈結
在kuangbin的dp專題裡找到的,然而有點坑的是並不是用dp做的。。。此題用貪心才是正解啊~~,對於每一發飛彈,若已經存在攔截系統,且可以攔截此飛彈,那麼重新開一台是沒意義的,因為達到的效果和通過降低現有攔截系統高度來攔截所達到的效果是一樣的,當然若攔截不了那就另當別論去開一台,問題是有多台可以降低高度那麼選哪一台呢?答案當然是選高度最低的且能攔截此飛彈的系統,這會為以後其他系統攔截留下餘地。這就是貪心策略,然後拿vector統計一下就好,我寫過的另一道貪心題比這道要簡單,但思路有相似之處,可以看一下~~(ps:部落格鏈結)。
#include#include#include#include#include#includeusing namespace std;
int main()
{ //freopen("in.in","r",stdin);
int n;
while(scanf("%d",&n)!=eof)
{vectorv;
while(!v.empty())v.pop_back();
for(int i=1;i<=n;i++)
{int x;
scanf("%d",&x);
int flag=-1;
int min_n=50000;
for(int i=0;i=x&&v[i]-x
HDU 1257 最少攔截系統 貪心
problem description 某國為了防禦敵國的飛彈襲擊,發展出一種飛彈攔截系統.但是這種飛彈攔截系統有乙個缺陷 雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能超過前一發的高度.某天,雷達捕捉到敵國的飛彈來襲.由於該系統還在試用階段,所以只有一套系統,因此有可能不能攔截所有...
最少攔截系統 HDU 1257 貪心
某國為了防禦敵國的飛彈襲擊,發展出一種飛彈攔截系統.但是這種飛彈攔截系統有乙個缺陷 雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能超過前一發的高度.某天,雷達捕捉到敵國的飛彈來襲.由於該系統還在試用階段,所以只有一套系統,因此有可能不能攔截所有的飛彈.怎麼辦呢?多搞幾套系統唄 你說說...
hdu 1257 最少攔截系統 (貪心)
problem description 某國為了防禦敵國的飛彈襲擊,發展出一種飛彈攔截系統.但是這種飛彈攔截系統有乙個缺陷 雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能超過前一發的高度.某天,雷達捕捉到敵國的飛彈來襲.由於該系統還在試用階段,所以只有一套系統,因此有可能不能攔截所有...