怎麼辦呢?多搞幾套系統唄!你說說倒蠻容易,成本呢?成本是個大問題啊.所以俺就到這裡來求救了,請幫助計算一下最少需要多少套攔截系統. 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 某國為了防禦敵國的飛彈襲擊,發展出一種飛彈攔截系統.但是這種飛彈攔截系統有乙個缺陷 雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能超過...