青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Onway

我是一只菜菜菜菜鳥...
posts - 61, comments - 56, trackbacks - 0, articles - 34

發(fā)現(xiàn)問題的起因是HDU 1712,一個(gè)赤裸的分組背包。所以有必要說一下這個(gè)題目。

題意:

一個(gè)學(xué)生用M天的時(shí)間復(fù)習(xí)N門課程,每門課程花費(fèi)不同的天數(shù),有不同的收獲。問如何安排這M天,使得收獲最大。

思路:

可以將每一門課看成一個(gè)分組,每門課不同天數(shù)的選擇看成是分組的物品(顯然只能有一個(gè)選擇),物品的費(fèi)用即為花費(fèi)的天數(shù),物品的價(jià)值為題中給出的收獲。該題中背包容量最大為M。

設(shè)dp[x]為前i組物品,在背包容量為x(即費(fèi)用為x)時(shí)的最大價(jià)值。則將i從1到N進(jìn)行過歷遍后(第一重循環(huán)),dp[m]即為所求。

在這種狀態(tài)設(shè)置中,容易想出以下兩種階段遞推方式(以下所述都為第二和第三重循環(huán)):

1,在同一個(gè)背包容量中,對不同費(fèi)用的物品進(jìn)行枚舉比較:

for(j=MAX;j>=1;--j)   //背包容量

      for(k=1;k<=m;++k)  //不同費(fèi)用的物品

2,在同一費(fèi)用的物品中,對放在不同背包容量時(shí)計(jì)算最大價(jià)值:(該方式同《背包九講-分組背包》中的偽代碼部分)

for(k=1;k<=m;++k)    //不同費(fèi)用的物品

      for(j=MAX;j>=1;--j)  //背包容量

簡略分析:

1,分析第一種遞推方式的正確:

該方式即求在容量為j的背包中,選擇哪一個(gè)物品可以有最大價(jià)值。

看遞推方程:dp[j]=max(dp[j],dp[j-c[k]]+w[k]);(其中c[k]為k物品的費(fèi)用,w[k]為價(jià)值),由于遞降枚舉背包容量,max比較中的dp[j]是由上一組物品決策所得,在這里將被忽略。因?yàn)榫退悴缓雎裕诒窘M物品中dp[j]的決策依然要取決于dp[j-c[k]]+w[k]。

而同樣由于遞降枚舉背包容量(第二重循環(huán)),dp[j-c[k]]在本組物品中是未進(jìn)行過決策的,亦即背包容量為j-c[k]時(shí),在本組物品中是沒有選擇任何物品的,這可以保證對dp[j]決策時(shí),不會多選本組中的物品。

2,分析第二種遞推方式的錯(cuò)誤:

該方式即求對物品k,放在所有背包中,計(jì)算各個(gè)最大價(jià)值。

同樣是遞推方程:dp[j]=max(dp[j],dp[j-c[k]]+w[k]);(其中c[k]為k物品的費(fèi)用,w[k]為價(jià)值)。能否保證dp[j-c[k]]在本組中未經(jīng)決策,就成了該遞推方式對錯(cuò)的關(guān)鍵。

由于背包容量的遞降枚舉在第三重循環(huán),只能保證k物品不會重復(fù)選擇。對于另一k0物品,當(dāng)背包容量枚舉到j(luò)-c[k]的時(shí)候,由方程可以有:dp[j-c[k]]=max(dp[j-c[k]],dp[j-c[k]-c[k0]]+w[k0],亦即dp[j-c[k]]可能在本組中的其他物品中進(jìn)行過決策。

那么這樣就可能導(dǎo)致在一組物品中選擇了多件物品。

----------------------------------------------------------------------------------------------------------------------

周五的早上AC了那個(gè)題目,但是感覺留下了一堆的問題。然后忙了兩天別的事,直到今天才感覺徹底搞懂了。

在最近的幾個(gè)題中,也算逐漸明白知識學(xué)習(xí)與能力培養(yǎng)的區(qū)別。

----------------------------------------------------------------------------------------------------------------------

以下附《背包九講-分組背包》中的內(nèi)容和HDU 1712的代碼。

分組背包:

P06: 分組的背包問題
 問題
 有N件物品和一個(gè)容量為V的背包。第i件物品的費(fèi)用是c[i],價(jià)值是w[i]。這些物品被劃分為若干組,每組中的物品互相沖突,最多選一件。求解將哪些物品裝入背包可使這些物品的費(fèi)用總和不超過背包容量,且價(jià)值總和最大。

 算法
 這個(gè)問題變成了每組物品有若干種策略:是選擇本組的某一件,還是一件都不選。也就是說設(shè)f[k][v]表示前k組物品花費(fèi)費(fèi)用v能取得的最大權(quán)值,則有f[k][v]=max{f[k-1][v],f[k-1][v-c[i]]+w[i]|物品i屬于第k組}。

 使用一維數(shù)組的偽代碼如下:

 for 所有的組k
 for 所有的i屬于組k
 for v=V..0
 f[v]=max{f[v],f[v-c[i]]+w[i]}

 另外,顯然可以對每組中的物品應(yīng)用P02中“一個(gè)簡單有效的優(yōu)化”。

 小結(jié)
 分組的背包問題將彼此互斥的若干物品稱為一個(gè)組,這建立了一個(gè)很好的模型。不少背包問題的變形都可以轉(zhuǎn)化為分組的背包問題(例如P07),由分組的背包問題進(jìn)一步可定義“泛化物品”的概念,十分有利于解題。

----------------------------------------------------------------------------------------------------------------------

//HDU 1712(被注釋的為以上第二種遞推方式):
#include <iostream>
using namespace std;
const int MAX=100;
int dp[MAX+1],data[MAX+1][MAX+1];
int main()
{
    
int n,m;
    
while(scanf("%d%d",&n,&m)&&(n||m))
    {
        
int i,j,k;
        
for(i=1;i<=n;++i)
            
for(j=1;j<=m;++j)
                scanf(
"%d",&data[i][j]);
   
/*
        memset(dp,0,sizeof(dp));
        for(i=1;i<=n;++i)     
            for(j=m;j>=1;--j) 
                for(k=MAX;k>=j;--k)    
                    if(dp[k]<dp[k-j]+data[i][j])
                      dp[k]=dp[k-j]+data[i][j];
    
*/

        memset(dp,
0,sizeof(dp));
        
for(i=1;i<=n;++i)    
            
for(j=MAX;j>=1;--j)  
                
for(k=1;k<=m;++k)  
                    
if(j>=k)
                        dp[j]
=dp[j]>dp[j-k]+data[i][k]?dp[j]:dp[j-k]+data[i][k];
    
        printf(
"%d\n",dp[m]);
    }
    
return 0;
}

Feedback

# re: 淺析《背包九講-分組背包》中的錯(cuò)誤  回復(fù)  更多評論   

2010-08-09 14:29 by marvin
還記得你看二重背包的時(shí)候我給你說的等你看到分組背包的時(shí)候咱商討下嗎?呵呵,就是這個(gè)問題,當(dāng)時(shí)我怎么也想不明白他列的這個(gè)世子是怎么工作的,然后就發(fā)現(xiàn)應(yīng)該讓第二重循環(huán)和第三重循環(huán)反過來才是正確的
然后再給你提點(diǎn)建議:
第二重循環(huán)的時(shí)候j從m開始就可以了,第三重循環(huán)k循環(huán)到K就可以了,下面的那條j>=k的語句就不同判斷了
下面的是正解,呵呵

for 所有的組k
for v=V..0
for 所有的i屬于組k
f[v]=max{f[v],f[v-c[i]]+w[i]}

# re: 淺析《背包九講-分組背包》中的錯(cuò)誤  回復(fù)  更多評論   

2011-02-18 14:42 by lzc4160
搜分組背包搜到你這來了.
贊同你的結(jié)論,原文里確實(shí)存在錯(cuò)誤.
但是有一個(gè)地方?jīng)]想明白.
HDU 1712原題我沒看,但從你的表述來看應(yīng)該是01背包問題.

# re: 淺析《背包九講-分組背包》中的錯(cuò)誤  回復(fù)  更多評論   

2011-07-29 15:32 by surfacedust
LZ強(qiáng)大,懷疑樓主看的是第一版的背包九講,后面的改正過來了!
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产精品试看| 久久精品免费电影| 欧美激情aⅴ一区二区三区| 免费欧美高清视频| 欧美成人影音| 亚洲欧美日韩国产综合| 欧美激情1区2区3区| 亚洲一区三区视频在线观看| 久久伊伊香蕉| 国产精品99久久久久久有的能看| 午夜久久美女| 久久久视频精品| 夜夜精品视频| 久久蜜桃精品| 欧美一区久久| 欧美日韩国产欧| 久久三级视频| 欧美午夜精品理论片a级大开眼界| 亚洲国产高清aⅴ视频| 久久久国产视频91| 免费日韩成人| 久久久欧美一区二区| 欧美在线观看视频在线| 国产精品一区二区久久久| 亚洲一区二区三区乱码aⅴ| 亚洲国产欧美在线人成| 久久狠狠亚洲综合| 亚洲图片欧美日产| 欧美福利一区二区| 久久久欧美精品| 国产日韩在线视频| 亚洲一区在线看| 亚洲一区二区免费| 欧美日韩在线精品| 91久久久久久| 亚洲精品1区| 久久久精品网| 久久在线播放| 国产一区免费视频| 亚洲欧美日韩精品综合在线观看| 国产精品久久久久久久午夜| 亚洲欧美清纯在线制服| 亚洲午夜免费视频| 亚洲日本成人女熟在线观看| 亚洲激情第一页| 亚洲国产一区视频| 久久婷婷蜜乳一本欲蜜臀| 亚洲第一黄色| 久久久精品2019中文字幕神马| 在线不卡亚洲| 欧美在线在线| 免费日韩av| 亚洲成色www8888| 久久国产精品色婷婷| 日韩亚洲欧美一区| 欧美aⅴ一区二区三区视频| 中文在线一区| 国产欧美成人| 欧美日韩一区二区在线视频| 亚洲一级黄色片| 欧美三区在线视频| 亚洲日本视频| 99视频一区二区| 欧美日韩免费高清一区色橹橹| 久久精品99| 国产视频一区二区三区在线观看| 免费成人高清在线视频| 欧美日韩爆操| 99re66热这里只有精品3直播| 国产亚洲激情视频在线| 欧美黑人多人双交| 亚洲精品资源| 国产精品网曝门| 久久久精品网| 日韩视频在线一区二区| 一色屋精品视频在线看| 日韩一区二区精品在线观看| 国产字幕视频一区二区| 日韩视频不卡| 西西裸体人体做爰大胆久久久 | 国产欧美午夜| 欧美在线视频播放| 亚洲高清影视| 欧美伊人久久大香线蕉综合69| 欧美金8天国| 欧美一级淫片aaaaaaa视频| 国产日本欧美在线观看 | 亚洲免费高清| 国产精品hd| 久久久国产午夜精品| 亚洲影视在线播放| 国产女人18毛片水18精品| 亚洲国产人成综合网站| 国产一区二区三区观看 | 久久av一区| 亚洲黄色尤物视频| 欧美一区二区三区视频免费播放| 欧美日韩国产小视频| 欧美成人网在线| 亚洲视频电影图片偷拍一区| 免费在线视频一区| 中文av字幕一区| 欧美激情五月| 久久久久高清| 亚洲自拍偷拍色片视频| 欧美日韩激情网| 欧美一区二区三区精品 | 国产欧美视频一区二区| 一区二区欧美日韩视频| 91久久精品国产91性色| 久久久久免费观看| 欧美亚洲第一页| 久久久久88色偷偷免费| 亚洲精品一区二区三区在线观看 | 国产精品久久久久毛片软件| 欧美一级久久久| 午夜精品福利一区二区蜜股av| 亚洲视频 欧洲视频| 免费欧美视频| 欧美一区观看| 亚洲一区二区精品在线| 欧美一区二区视频网站| 国产精品一卡二卡| 欧美人与禽猛交乱配| 一区二区不卡在线视频 午夜欧美不卡在 | 国产曰批免费观看久久久| 亚洲综合欧美日韩| 亚洲精品免费网站| 免费黄网站欧美| 久久亚洲高清| 久久久久久久91| 欧美一区二区成人6969| 狠狠干综合网| 国产一区二区三区高清在线观看| 性色av一区二区三区| 久久网站热最新地址| 激情久久中文字幕| 国产日韩亚洲欧美综合| 久久久国产精品一区二区中文| 老司机午夜精品视频| 亚洲日本欧美天堂| 亚洲激情专区| 亚洲精品日韩久久| 日韩亚洲欧美精品| 9国产精品视频| 一区二区三区四区蜜桃| 国产视频在线观看一区| 久久激情五月婷婷| 欧美在线影院在线视频| 亚洲国产免费看| 亚洲国产精品成人综合| 亚洲欧美电影在线观看| 国产主播一区| 国色天香一区二区| 禁久久精品乱码| 亚洲国产一区二区三区在线播| 欧美日韩一区二区三区四区在线观看 | 亚洲精品一二| 亚洲美女一区| 亚洲欧美日韩精品久久亚洲区| 欧美好吊妞视频| 亚洲第一区在线| 亚洲毛片播放| 午夜精品久久久久久久久久久久| 欧美激情视频在线播放| 亚洲欧美欧美一区二区三区| 狠狠色狠色综合曰曰| 欧美日韩精品二区| 欧美视频免费在线观看| 美女亚洲精品| 欧美国产欧美亚洲国产日韩mv天天看完整 | 一区二区三区高清| 亚洲女人天堂成人av在线| 欧美成年人网| 欧美黄在线观看| 亚洲一区二区三区视频| 欧美粗暴jizz性欧美20| 99精品欧美一区| 欧美精品情趣视频| 亚洲黄色影片| 日韩一级网站| 久久免费黄色| 欧美成人精品福利| 这里只有精品丝袜| 久久综合福利| 国产欧美va欧美va香蕉在| 欧美三级午夜理伦三级中文幕| 久久久噜噜噜| 欧美性jizz18性欧美| 欧美韩日高清| 国产日韩欧美自拍| 一区二区三区 在线观看视频| 在线观看亚洲| 亚洲欧美一区二区精品久久久| 亚洲精品日韩欧美| 欧美专区日韩视频| 99国产精品久久久久老师 | 亚洲一区二区成人| 久久久久国产精品一区二区| 亚洲欧美久久久久一区二区三区|