NYOJ 106 簡單揹包問題

2022-03-13 08:48:14 字數 600 閱讀 9123

首先觀察題目,n表示輸入資料的個數,s表示物品個數,m表示揹包容重量,v表示物品單位重量的價值,w表示單個物品的總重量,物品可以分割,並且每個物品只可以拿一次,要求輸出在滿足包容重量的前提下包內物品價值和的最大值

分析:定義乙個表示物品的結構體,屬性有單位價值和重量,將每個物品按照單位價值來進行排序,要滿足價值和最大的條件的話,那我們的揹包就要先從單位價值最大的開始裝起,直到揹包滿

**如下:

1 #include2

struct

articles

3f[11];7

intmain()820

for(i=0;i)

2130

}31 }//

氣泡排序,按單價降序

32for(i=0;i)

33else

3944

}45 printf("

%d\n

",sum);46}

47return0;

48 }

NYOJ 106 揹包問題

時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述 現在有很多物品 它們是可以分割的 我們知道它們每個物品的單位重量的價值v和重量w 1 v,w 10 如果給你乙個揹包它能容納的重量為m 10 m 20 你所要做的就是把物品裝到揹包裡,使揹包裡的物品的價值總和最大。輸入 第一行輸...

揹包問題 nyoj106

時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述 現在有很多物品 它們是可以分割的 我們知道它們每個物品的單位重量的價值v和重量w 1 v,w 10 如果給你乙個揹包它能容納的重量為m 10 m 20 你所要做的就是把物品裝到揹包裡,使揹包裡的物品的價值總和最大。輸入第一行輸入...

NYOJ 106 揹包問題

時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述 現在有很多物品 它們是可以分割的 我們知道它們每個物品的單位重量的價值v和重量w 1 v,w 10 如果給你乙個揹包它能容納的重量為m 10 m 20 你所要做的就是把物品裝到揹包裡,使揹包裡的物品的價值總和最大。輸入第一行輸入...