zcmu 黃金礦工 (分組揹包)

2021-08-22 02:37:23 字數 904 閱讀 3139

30%的資料,0 < t ≤ 4000 

100%的資料,n ≤ 200, 0 < t ≤ 40000 

對於同一條直線上的金子,必須把前面的拿走才能拿後面的。舉個例子,有 1,2,3,三塊金子,有拿1,拿 1 2,拿1 2 3三種拿法,同時他們之間是互斥的,三種拿法中只能取一種拿法。這樣就變成了分組揹包問題。

變成分組揹包問題後,接下來就是怎麼分組了,很明顯按直線的斜率分組,同一直線上的物品為同一組,接下來就是套模板了

我在**裡注釋了。

#include//分組揹包

#include#include#include#includeconst int max = 500;

using namespace std;

struct node

gold[max];//存物品

bool cmp(node x, node y)//同一直線上的排在一起}}

p = q;//更新開始的位置

} cout << f[t] << endl;

} return 0;

}

ZCMU2165黃金礦工

初步分析 這題是一道加了約束條件的01揹包問題,約束條件是同一條直線上的 必須要按順序挖。twice分析 約束條件就是假如有c1 c2 c3三個同一直線上的 假設c1先給出 下面再對 給出解釋。include define mem a,b memset a,b,sizeof a using name...

leetcode 黃金礦工

你要開發一座金礦,地質勘測學家已經探明了這座金礦中的資源分布,並用大小為 m n 的網格 grid 進行了標註。每個單元格中的整數就表示這一單元格中的 數量 如果該單元格是空的,那麼就是 0。為了使收益最大化,礦工需要按以下規則來開採 每當礦工進入乙個單元,就會收集該單元格中的所有 礦工每次可以從當...

黃金礦工 回溯演算法

你要開發一座金礦,地質勘測學家已經探明了這座金礦中的資源分布,並用大小為 m n 的網格 grid 進行了標註。每個單元格中的整數就表示這一單元格中的 數量 如果該單元格是空的,那麼就是 0。為了使收益最大化,礦工需要按以下規則來開採 示例 2 輸入 grid 1,0,7 2,0,6 3,4,5 0...