hdu1257最少攔截系統(dp)

2021-07-04 16:09:27 字數 1173 閱讀 3579

怎麼辦呢?多搞幾套系統唄!你說說倒蠻容易,成本呢?成本是個大問題啊.所以俺就到這裡來求救了,請幫助計算一下最少需要多少套攔截系統. 2

解題報告:

好多人可能會想用兩個迴圈,只要外迴圈大於內迴圈,即後面的大於前面的就+1,這種方法是不對的。。

應該用dp的思想。判斷什麼該+1的時候注意是用len[i]還是len[j],而且要注意什麼時候值要變化。

#include i#include #include #include #include #include #include #include #include #include using namespace std;

#define inf 0x2fffffff

#define ll long long

#define max(a,b) ((a)>(b))?(a):(b)

#define min(a,b) ((a)<(b))?(a):(b)

int main()

for(int i=0;i=a[j]) //這個地方還要有等於號,因為後乙個等於前乙個也無法攔截

}if(max!=-1) //關鍵

len[i]=max+1;

} int ans=-1;

for(int i=0;i

#include #include #include #include #include #include #include #include #include #include using namespace std;

#define inf 0x2fffffff

#define ll long long

#define max(a,b) ((a)>(b))?(a):(b)

#define min(a,b) ((a)<(b))?(a):(b)

int main()

}if(!flag)

}printf("%d\n",vec.size());

}return 0;

}

hdu 1257 最少攔截系統 dp

簡單的dp,只要把每個系統的飛彈當前最低高度儲存一下,以後得飛彈都用最小值比他大的系統中最小值最小的就 ok 啦。每次要麼更新原來系統最低高度,要麼加進去乙個新系統。include include include include include include include include inc...

HDU 1257 最少攔截系統(DP)

這題其實就是求最長上公升子串行,可是今天丟人丟大了,前幾天剛做個這道題,今天比賽直接把 貼上了,晚上學長讓我講講怎麼用dp做的。一看就傻眼了,我自己心裡還想這題怎麼能這麼做呢!討論完題目回頭一想還確實是這麼回事。唉,悲劇啊 可以看看這組數 389 207 155 300 299 170 158 65...

hdu1257 最少攔截系統

解釋 當炮彈乙個接乙個的從空中飛來時,系統可以攔住比它攔住前乙個高度低的炮,比前乙個高的不攔,給第二個系統攔 problem description 某國為了防禦敵國的飛彈襲擊,發展出一種飛彈攔截系統.但是這種飛彈攔截系統有乙個缺陷 雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能超過...