• <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>
            我要啦免费统计
            背包問(wèn)題(01,完全,多重,未測(cè)試)
             
            #define MAXN 120005  //maxcash
            #define  MAX 11

            int n[MAX],c[MAX];//n[i]物品i的數(shù)量,c[i]費(fèi)用,w[i]價(jià)值 
            int f[MAXN];//MAXN為最大容量 ,存儲(chǔ)狀態(tài)值 
            int V,N;//V最大容量,N物品個(gè)數(shù) 

            /*01背包物品 */ 
             
            void ZeroOnePack(int cost,int weight){
                  
            //一件01背包物品 
                  
            // 費(fèi)用cost, 價(jià)值weight,01背包 
                 for(int v=V;v>=cost;--v)
                  f[v]
            =max(f[v],f[v-cost]+weight);
                 
            return;
             }

             
             
            void ZeroOnePackMain(){
               
            /*N件物品 容量為V的背包,第i件物品費(fèi)用c[i],價(jià)值w[i],求轉(zhuǎn)入背包可以獲取的最大價(jià)值 
               原方程f[i][v]=max{f[i-1][v],f[i-1][v-c[i]]+w[i]} 
               簡(jiǎn)化方程:f[v]=max{f[v],f[v-cost]+weight};
               
            */

               
            for(int i=0;i<N;i++)
                  ZeroOnePack(cost[i],weight[i]);
               
            return;
              }



              
            /*一件完全背包*/ 
             
            void CompletePack(int cost,int weight){
                  
            //一件物品完全背包 
                  
            //N 種物品 容量 V,c[i],w[i], 每一種無(wú)限,求最大價(jià)值  
                
            // 費(fèi)用cost, 價(jià)值weight,完全背包 
                
            //對(duì)多種物品的問(wèn)題,可以添加的優(yōu)化:a.去掉大于V的物品;b.c[i]<=c[j] and w[i]>=w[j]去掉物品j   
                for(int v=cost;v<=V;++v)
                   f[v]
            =max(f[v],f[v-cost]+weight);
                
            return;
             }



            /*一件多重背包*/
             
            void MultiplePack(int cost,int weight,int amount){
             
            //多重背包 
             
            //1種物品 費(fèi)用cost, 價(jià)值weight,個(gè)數(shù)amount 
             
            //二進(jìn)制優(yōu)化log(amount) 
                 if(c*amount>=V){
                    CompletePack(cost,weight);
                   
            return;      
                 }

                 
            int k=1;
                 
            while(k<amount){
                    ZeroOnePack(k
            *cost);
                    amount
            -=k;
                    k
            *=2;
                 }

                 ZeroOnePack(amount
            *cost);
                 
            return;
             }

            posted on 2009-03-18 23:35 閱讀(1861) 評(píng)論(2)  編輯 收藏 引用 所屬分類(lèi): Dynamic programming

            評(píng)論:
            # re: 先寫(xiě)個(gè)背包問(wèn)題模板(01,完全,多重,未測(cè)試) 2009-03-19 09:30 | cppexplore
            偶爾往首頁(yè)發(fā)個(gè)解題報(bào)告也無(wú)不可 大量的發(fā)而又重復(fù)的沒(méi)啥意義吧
            是不是可以寫(xiě)的總結(jié)啊 算法基礎(chǔ) npc綜述之類(lèi)的發(fā)到首頁(yè)啊  回復(fù)  更多評(píng)論
              
            # re: 先寫(xiě)個(gè)背包問(wèn)題模板(01,完全,多重,未測(cè)試) 2009-03-19 18:02 | cdy20
            @cppexplore
            有些代碼只算是保存而已。

            我菜鳥(niǎo)而已。
            也沒(méi)多少時(shí)間寫(xiě)這些,寫(xiě)在筆記本上多點(diǎn)。

            等退役后再說(shuō)吧。
              回復(fù)  更多評(píng)論
              
            久久久久亚洲Av无码专| 99久久99久久| 狠狠色丁香久久婷婷综合图片| 性欧美大战久久久久久久久| 久久精品亚洲中文字幕无码麻豆| 日本精品久久久久中文字幕| 久久精品国产黑森林| 人妻精品久久无码区| 99久久综合国产精品二区| 伊人久久成人成综合网222| 人妻久久久一区二区三区| 久久人妻少妇嫩草AV蜜桃| 久久久亚洲欧洲日产国码aⅴ| 国产99久久九九精品无码| 色综合久久无码五十路人妻| 国产香蕉97碰碰久久人人| 久久久久亚洲av综合波多野结衣| 精品久久久久久成人AV| 亚洲а∨天堂久久精品| 国产香蕉97碰碰久久人人| 97久久精品人妻人人搡人人玩| 色偷偷88欧美精品久久久| 伊人丁香狠狠色综合久久| 午夜精品久久久久久99热| 久久青青草视频| 美女久久久久久| 久久高清一级毛片| 国产高清美女一级a毛片久久w| 婷婷伊人久久大香线蕉AV| 囯产极品美女高潮无套久久久 | 狼狼综合久久久久综合网| 久久综合给合综合久久| 激情综合色综合久久综合| 丁香久久婷婷国产午夜视频| 欧美777精品久久久久网| 2021久久国自产拍精品| 精品久久久久久亚洲精品| 久久99精品国产自在现线小黄鸭| 久久久久久精品免费看SSS| 亚洲人成网亚洲欧洲无码久久| 久久久久亚洲AV无码专区首JN |