HDU 3127 WHUgirls 二維完全揹包

2022-05-07 07:03:12 字數 863 閱讀 3642

題意:給出乙個長為a,寬為b的布,再給出n個圍巾的規格(長x,寬y,價值c),問怎樣裁剪能夠得到最大的價值。

----第一次做的時候不會---然後放到今天做--發現還是不會---於是又--看題解了----@_@===

因為相同規格的圍巾可以重複剪多次,且圍巾的長和寬相當於兩個約束,所以可以轉換為二維費用的完全揹包問題。

然後就是圍巾的裁剪

第一種 橫著減

裁切線分為兩種

對於左上的第乙個圖,當減去長為x,寬有長為y的乙個矩形之後,剩餘的面積之和分別由長為i-x,寬為y;長為i,寬為j-y的兩個矩形組成。

對於左上的第二個圖,當減去長為x,寬有長為y的乙個矩形之後,剩餘的面積之和分別由長為i-x,寬為j;長為x,寬為j-y的兩個矩形組成。

第二種 豎著減 和第一種的方法類似--

然後就可以寫出狀態轉移方程----

#include#include

#include

#include

#define maxn 1005

using

namespace

std;

struct

node

a[maxn];

intdp[maxn][maxn];

intmain()}}

printf(

"%d\n

",dp[c][d]);}}

view code

HDU 3127 WHUgirls(二維揹包)

有一塊x y的布,可以裁剪成n種不同的小碎步布,剪成xi yi的碎布可以獲得wi元,問將這塊布剪成小碎布最多能獲得多少錢?只能橫著剪或者豎著剪,不能從中間摳出一塊 二維dp,dp j k 表示j k的布剪成小碎布最多能得到多少錢,j k可以由三個小長方形組成 這裡有切割方式 1 xi yi j k ...

HDU 3127 完全揹包

題目大意 乙個大矩形,要你分割成小矩形 只能水平和豎直切割 每個小矩形都有乙個價值,問如何分割能得到最大總價值。解題思路 完全揹包思想,列舉所有可能情況。對於列舉每個小矩形都可以橫放豎放兩種情況。對於每種情況都有兩種切割方式 橫向切割或者豎向切割。1 include 2 include 3 incl...

HDU 2159 二維完全揹包

最近xhd正在玩一款叫做fate的遊戲,為了得到極品裝備,xhd在不停的殺怪做任務。久而久之xhd開始對殺怪產生的厭惡感,但又不得不通過殺怪來公升完這最後一級。現在的問題是,xhd昇掉最後一級還需n的經驗值,xhd還留有m的忍耐度,每殺乙個怪xhd會得到相應的經驗,並減掉相應的忍耐度。當忍耐度降到0...