洛谷p2240
樣例:
輸入:450
1060
20100
30120
1545
輸出:240.00
思路:與動態規劃的揹包問題不同,此處的金幣是可以隨意分割的,我們可以運用貪心,優先選取最合適的金幣堆。怎麼優先選擇呢??題中說道:「分割完的金幣重量價值比(也就是單位**)不變」。所以可以優先選擇單位**大的金幣堆。
ac**:
#include
using
namespace std;
struct node
a[105];
bool
cmp(
const node &a,
const node &b)
intmain()
else
//不能放下整堆金幣
}printf
("%.2f\n"
,sum)
;return0;
}
P2240 深基12 例1 部分揹包問題(洛谷)
思路 先定義三個陣列儲存每一堆金幣的價值,重量,價效比,然後用氣泡排序按價效比從大到小排序,最後將價效比大的先與揹包的重量比較 此處就是貪心的思想,區域性優解到全域性優解 再分兩種情況討論,最後輸出帶走金幣的價值即可 include using namespace std int n double ...
洛谷 P2240 深基12 例1 部分揹包問題
題目描述 阿里巴巴走進了裝滿寶藏的藏寶洞。藏寶洞裡面有 n n le 100 n n 100 堆金幣,第 ii 堆金幣的總重量和總價值分別是 m i,v i 1 le m i,v i le 100 mi vi 1 mi vi 100 阿里巴巴有乙個承重量為 t t le 1000 t t 1000 ...
揹包問題(1)部分揹包
1.現有4個揹包,已知每個物品的體積和價值,每個揹包最多容納10個體積的物品,每件物品只能拿一次,問怎麼樣裝使揹包的價值最大?分析 1 二維陣列求法 如果包的體積由0變化到10,每次物品只能放一次,則包內所放物品的價值量為 則包所放的最大價值即二維陣列的最後乙個值 如下 include using ...