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