亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 01bag.cpp

?? 背包問題優先隊列分枝限界算法 所謂的背包問題
?? CPP
字號:
 
/*
  Copyright (c) 2006, Computing Center of IHEP, Beijing, China
 */

//0-1背包問題優先隊列分枝限界算法
//#include "stdafx.h"
#include "iostream.h"
struct node{//結點表結點數據結構
                         node *parent;//父結點指針
                         node *next;  //后繼結點指針(優先隊列用)
                         int   level; //結點的級數
                         int   tag;   //標志左右孩子
                         int   cu;    //背包剩余空間
                         int   pe;    //已裝入物品有效益值
                         int   lb;    //結點的下界值
                         float ub;    //結點的上界值
                 };
class LcKnap{//優先隊列背包類
     private:
                 node *head;          //活動結點隊列隊頭
                 node *ANS,*E;        //解結點、根結點
                 int *p,*w;           //背包價值、重量數組指針
                 int M,lbb,cap,prof;  //背包容量、下限、剩余容量、當前價值之和
                 int N;               //物品數
                 float L;             //裝入物品價值
                 float e,ubb;         //很小的正整數參量、價值上限
         public:
                  LcKnap(int *pp,int *ww,int MM,int NN,float ee);//構造函數
                 ~LcKnap();//析構函數
                 void  LUBound(int rw,int cp,int k,int &LBB,float &UBB);//計算上下界限
                 node* NewNode(node *parent,int level,int t,int cap,int prof,float ub,int lb);//生成一個新結點
                 void  EnQueue(node *i);//將結點i加入優先隊列
                 void  DeQueue(node *i);//將結點i從優先隊列中刪除
                 node* NextLiveNode();  //下一擴展結點
                 void  Print();         //打印結果
                 void  LCKNAP();        //背包問題求解
};
LcKnap::LcKnap(int *pp,int *ww,int MM,int NN,float ee)
{//構造函數
  int i;
  //初始化參數
  N=NN;
  M=MM;
  e=ee;
  p=new int[N];
  w=new int[N];
  for(i=0;i<N;i++)
  {
          p[i]=pp[i];
          w[i]=ww[i];
  }
  head=new(node);
  head->next=NULL;
  L=0;
  ANS=new(node);
}
LcKnap::~LcKnap()
{//析構函數
   delete head;
   delete p;
   delete w;
   delete ANS;
}
void LcKnap::LUBound(int rw,int cp,int k,int &LBB,float &UBB)
{//計算上下界限
        int i,j,c;
        LBB=cp;
    c=rw;
        for(i=k;i<N;i++)
        {
                if(c<w[i])
                {
                        UBB=(float)(LBB+c*p[i]/w[i]);
                        for(j=i+1;j<N;j++)
                        {
                                if(c>=w[j])
                                {
                                        c=c-w[j];
                                        LBB+=p[j];
                                }
                        }
                        return;
                }
                c=c-w[i];
                LBB+=p[i];
        }
        UBB=(float)LBB;
        return;
}
node* LcKnap::NewNode(node *parent,int level,int t,int cap,int prof,float ub,int lb)
{//生成一個新結點
        node* i=new(node);
        i->parent=parent;
        i->next=NULL;
        i->level=level;
        i->tag=t;
        i->cu=cap;
        i->pe=prof;
        i->ub=ub;
        i->lb=lb;
        return(i);
}
void LcKnap::EnQueue(node *i)
{//將結點i加入優先隊列
  i->next=head->next;
  head->next=i;
}
void LcKnap::DeQueue(node *i)
{//將結點i從優先隊列中刪除
   node *pre=head,*p=head->next;
   while(p!=i)
   {
           pre=p;
           p=p->next;
   }
   pre->next=p->next;
}
node *LcKnap::NextLiveNode()
{//下一擴展結點(取下限lb最大結點)
        node *p=head->next,*choice=p;
        int lb=p->lb;
        while(p)
        {
                if(p->lb>lb)
                {
                        choice=p;
                }
                p=p->next;
        }
        return(choice);
}
void LcKnap::Print()
{//打印結果
        int i;
        cout<<"Value Of Optimal Filling is:"<<L<<endl;
        cout<<"Objects In KnapSack Are:";
        for(i=N;i>=1;i--)
        {
                if(ANS->tag==1)
                {
                        cout<<'X'<<i<<' ';
                }
                ANS=ANS->parent;
        }
        cout<<endl<<endl;
}
void LcKnap::LCKNAP()
{//背包問題求解
   int i;
   node* E=new(node);  //根結點
   E->parent=NULL;
   E->next=NULL;
   E->level=0;
   E->cu=M;
   E->pe=0;
   E->tag=0;
   LUBound(M,0,0,lbb,ubb);//計算根結點上下界限
   L=lbb-e;
   E->lb=lbb;
   E->ub=ubb;
   while(E->ub>L)    //當前擴展結點上界<當前解時結束
   {
           i=E->level;
           cap=E->cu;
           prof=E->pe;
           if(i==N)  //解結點
           {
                   if(prof>L)
                   {
                           L=(float)prof;   //解
                           ANS=E;
                   }
           }
           else              //E有兩個兒子
           {
                   if(cap>=w[i]) //左兒子可行
                   {
              EnQueue(NewNode(E,i+1,1,cap-w[i],prof+p[i],E->ub,E->lb));
                   }
           LUBound(cap,prof,i+1,lbb,ubb);  //重新計算上下界     
                   if(ubb>L)   //右兒子可行
                   {
              EnQueue(NewNode(E,i+1,0,cap,prof,ubb,lbb));
                          if(L<lbb-e)L=lbb-e;
                   }
           }
           if(head->next==NULL)//隊列空或ub>L結束
           {
                   break;
           }
           else
           {
                   E=NextLiveNode();   //下一擴展結點
                   DeQueue(E);         //將結點從隊列中刪除
           }
   }//EndWhile
   Print();
}
//主程序
void main(int argc, char* argv[])
{
        float e;
        int p[4]={10,10,12,18},w[4]={2,4,6,9};// 4背包
        int pp[16]={10,12,9,15,13,12,10,14,9,7,19,18,15,12,11,10}; //16背包  
        int ww[16]={ 2, 3,3, 5, 5, 6, 5, 7,5,4,12,14,12,12,13,14};
        e=(float)0.0001;
        LcKnap *knap4 =new LcKnap(p,w,15,4,e);
        LcKnap *knap16=new LcKnap(pp,ww,40,16,e);
        knap4->LCKNAP();
        knap16->LCKNAP();

        delete knap4;
        delete knap16;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品一区二区三区中文不卡| 国产一区三区三区| 在线成人高清不卡| 国内精品视频一区二区三区八戒| 国产精品美女久久久久av爽李琼| 91小视频免费看| 日本不卡视频一二三区| 欧美日韩激情一区| 国产福利不卡视频| 亚洲国产日韩精品| 久久一区二区视频| 日韩一区二区影院| 精品污污网站免费看| 91社区在线播放| 国内精品免费**视频| 免费成人美女在线观看.| 亚洲国产一区二区视频| 亚洲靠逼com| 国产精品久久久久永久免费观看 | 日韩精品亚洲专区| 亚洲精品国产视频| 国产欧美日韩视频一区二区| 欧美成人r级一区二区三区| 欧美日韩第一区日日骚| 日本精品免费观看高清观看| 成人精品一区二区三区四区| 国产在线播放一区二区三区| 精品在线观看视频| 日本在线不卡视频| 天天色图综合网| 午夜一区二区三区在线观看| 亚洲男同性视频| 亚洲免费观看高清| 一区二区三区不卡视频| 一区av在线播放| 一区二区三区在线观看欧美| 亚洲人成网站在线| 中文字幕一区免费在线观看| 国产精品久久久久久户外露出| 国产欧美精品一区二区三区四区| 久久人人超碰精品| 国产日韩欧美麻豆| 国产精品久久久久久一区二区三区| 国产精品午夜在线| 日本一区二区动态图| 中文字幕一区二区三区乱码在线| 中文字幕色av一区二区三区| 亚洲女厕所小便bbb| 亚洲一二三四区不卡| 国产精品99久久久久久久vr | 欧美国产日韩精品免费观看| 国产欧美一区二区精品性色| 国产精品福利一区| 亚洲另类春色校园小说| 亚洲成av人片观看| 美女精品自拍一二三四| 国产在线视频一区二区| 成人免费观看视频| 欧美亚洲一区三区| 日韩欧美亚洲国产精品字幕久久久| 久久日一线二线三线suv| 国产欧美一二三区| 一区二区免费看| 日本欧美在线观看| 大尺度一区二区| 欧美日韩视频第一区| 精品精品欲导航| 中文字幕不卡的av| 午夜视频在线观看一区二区| 久久99最新地址| 成人激情视频网站| 欧美日本在线观看| 国产欧美视频在线观看| 亚洲午夜久久久久中文字幕久| 麻豆国产精品一区二区三区| 99在线精品免费| 日韩视频中午一区| 亚洲特级片在线| 久久99国产精品久久99| 91免费版在线| 精品国产91乱码一区二区三区| 综合av第一页| 毛片av中文字幕一区二区| 成人一区在线观看| 91精品国产综合久久蜜臀| 日本一二三不卡| 日韩av电影免费观看高清完整版在线观看| 国产夫妻精品视频| 欧美日韩精品欧美日韩精品| 国产精品麻豆网站| 久久国产生活片100| 91一区二区在线| 久久综合狠狠综合久久激情| 亚洲国产日产av| 成人h动漫精品| 亚洲精品在线一区二区| 五月婷婷另类国产| 91在线观看高清| 精品人伦一区二区色婷婷| 亚洲成a人片在线不卡一二三区 | 国产高清久久久| 在线播放视频一区| 亚洲伦理在线精品| 国产精品白丝jk黑袜喷水| 欧美一卡二卡在线观看| 欧美性生交片4| 欧美性受极品xxxx喷水| 成人欧美一区二区三区| 久久99蜜桃精品| 欧美视频精品在线观看| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 国内外精品视频| 日韩免费看网站| 奇米888四色在线精品| 欧美日韩中字一区| 亚洲欧美日韩一区二区三区在线观看| 国产成人99久久亚洲综合精品| 日韩一区二区三区四区| 五月婷婷久久丁香| 欧美日韩成人综合在线一区二区| 一区二区三区小说| 色狠狠色噜噜噜综合网| 亚洲欧洲色图综合| 91麻豆自制传媒国产之光| 国产精品久久久久久久久久久免费看| 国产iv一区二区三区| 久久久亚洲高清| 国产成人在线看| 欧美激情一区二区三区蜜桃视频 | 亚洲国产sm捆绑调教视频| 91免费看`日韩一区二区| 中文在线免费一区三区高中清不卡| 激情伊人五月天久久综合| 精品国产乱码久久久久久久| 蜜臀av一区二区三区| 91精品国产aⅴ一区二区| 秋霞午夜鲁丝一区二区老狼| 日韩一区二区三区视频| 精品一区二区在线视频| 久久丝袜美腿综合| 波多野结衣的一区二区三区| ...xxx性欧美| 欧洲一区在线电影| 日韩电影在线免费观看| 精品福利一区二区三区免费视频| 国产一区二区在线视频| 亚洲欧洲av色图| 精品视频在线免费| 青青草原综合久久大伊人精品优势| 日韩欧美激情一区| 成人午夜短视频| 亚洲男同1069视频| 在线成人av影院| 国产精品一二三| 亚洲精品ww久久久久久p站| 欧美男生操女生| 国产一区 二区 三区一级| 久久无码av三级| 91丨porny丨国产入口| 视频一区欧美精品| 久久久影视传媒| 在线观看成人免费视频| 久久国产精品无码网站| 欧美色倩网站大全免费| 国产精品久久久久久妇女6080| 色婷婷一区二区三区四区| 日韩国产高清在线| 国产精品毛片大码女人| 欧美日韩精品一区二区三区蜜桃 | 麻豆免费精品视频| 国产精品视频麻豆| 51精品视频一区二区三区| 精品一区二区三区免费毛片爱| 国产精品免费久久| 91精品国产免费| 99国产精品视频免费观看| 男女性色大片免费观看一区二区| 国产拍欧美日韩视频二区| 在线观看免费成人| 国产高清久久久| 日本色综合中文字幕| 亚洲欧洲精品一区二区精品久久久| 欧美日韩精品一区二区三区| 风间由美一区二区三区在线观看| 亚洲综合一区二区三区| 国产欧美一区二区三区在线老狼| 欧美性色综合网| 国产在线一区二区| 亚洲午夜久久久久久久久电影网| 欧美激情一区三区| 日韩精品专区在线| 欧美日韩免费观看一区三区| 国产成都精品91一区二区三| 免费人成在线不卡| 亚洲欧美韩国综合色| 国产欧美日韩精品一区| 欧美va天堂va视频va在线| 欧美最猛性xxxxx直播| 波多野结衣精品在线| 国产成人精品一区二区三区网站观看|