時間限制: 1 Sec 内存限制: 128 MB
題目描述
托塔李天王的三太子那吒,本領高強,他要趕在奧林匹克運動會之際,開一個頭腦奧林匹克比賽,獲勝者的獎品就是經過提練後的“氦-3”晶結體;該物質在月球上大量存在,是一種無色、無味的氦氣同位素,它在核聚變研究中有重要作用。氦-3還是一種絕對清潔的能源,因為它本身不帶放射性,因此不會産生任何放射性廢料。可是如何從月球上将該晶體運回地球呢?那吒說:用我的肚兜吧!當然他的肚兜易受太陽風等因素的影響,載重量不能超過K(1≤n≤100000),超過這個值,肚兜就不會飛了;這個K值那吒會告訴你的,同時還會告訴你每一個晶體的重量。 你的任務是使這個肚兜一次能運回更多的晶體。
輸入
有兩行: 第一行有兩個正整數n(1≤n≤100。)和k,用一個空格隔開。表示有n個晶體,肚兜最大載重量為k。 第二行有n個不超過10000的正整數,分别表示n個晶體的重量,數與數之間用一個空格隔開。
輸出
隻有一行,該行隻有一個正整數,表示那吒的肚兜一次能運回的晶體重量的最大值。
樣例輸入 Copy
5 15 2 4 4 8 10
樣例輸出 Copy
14
V
V
V
V
V
V
V
V
V
解答:
#include<bits/stdc .h> using namespace std; int dp[1000001]; int main() { int t,n,c,i; scanf("%d%d",&n,&t); while(n--) { scanf("%d", &c); for (i=t;i>=c;--i) // 填滿型背包 { dp[i]=max(dp[i],c dp[i-c]); } } printf("%d",dp[t]); return 0; }
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!