D 最少攔截系統的貪心解法(部落格初體驗)

2021-10-02 19:27:19 字數 1300 閱讀 1494

第一套最低160,第二套最低120,第三套開始為150,所以此問題利用貪心解法需要陣列記憶每套系統剩餘的價值

ac**1

//第一套最低160,第二套最低120,第三套開始為150,所以此問題利用貪心解法需要陣列記憶每套系統剩餘的價值 

#include

#include

#include

using

namespace std;

intmain()

m=a[0]

; t=1;

for(i=

0; i) m=a[i];}

cout<}

ac**2

當有多個飛彈高度相同的時候(bug)

#include

#include

#include

using

namespace std;

intmain()

,j,n,i,t,a[

500]

; cin>>n;

t=1;for

(i=0

; i) m[0]

=a[0];

for(i=

0; i(j+1

==t)

m[t++

]=a[i];}

} cout<}

ac**

(最終篇!!!)

我還是太菜了,剛剛開始接觸演算法,重要的是在用錯位的思想以免去 「m陣列和a陣列出現相等」 的麻煩

不用一位滾動的話還是得把陣列卡大一點,500的a陣列就re了

#include

#include

#include

using

namespace std;

intmain()

m[0]

=a[0];

for(i=

1; i(j == t)}}

cout<1<}}

從網上又看到了了一種,更容易理解,大概的意思是利用雙迴圈每次都跑一趟,然後利用陣列記錄

//注意標記陣列m的第一項要初始化為1

#include

#include

using

namespace std;

intmain()

maxn=

0;m[0]

=1;for

(i=1

; i) maxn=

max(maxn,m[i]);

} cout<}}

最少攔截系統(貪心)

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

最少攔截系統(貪心)

g 最少攔截系統 time limit 1000ms memory limit 32768kb 64bit io format i64d i64u submit status description 某國為了防禦敵國的飛彈襲擊,發展出一種飛彈攔截系統.但是這種飛彈攔截系統有乙個缺陷 雖然它的第一發炮...

最少攔截系統(貪心)

這題是可以用dp做的,但是在這篇,我只講一下貪心的做法。為什麼我不說說動態規劃做法呢?感覺麻煩。好吧,其實是我現在還不會。某國為了防禦敵國的飛彈襲擊,發展出一種飛彈攔截系統.但是這種飛彈攔截系統有乙個缺陷 雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能超過前一發的高度.某天,雷達捕捉...