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

newplan

阿基米德在洗澡時發現浮力原理,高興得來不及穿上褲子,跑到街上大喊:Eureka(我找到了)。
posts - 39, comments - 26, trackbacks - 0, articles - 4
  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

算法 實驗 4

Posted on 2008-06-10 21:47 山泉彎延 閱讀(387) 評論(0)  編輯 收藏 引用
/*
6.10
*/
/*==========INCLUDES BEGIN===============*/ 
#include 
<cstdlib>
#include 
<iostream>
#include 
<fstream>
#include 
<algorithm>
#include 
<QApplication>
#include 
<QWidget>
#include 
<QPainter>
#include 
<Qt>

/*==========INCLUDE END==================*/ 

/*==========MACROS BEGIN=================*/
#define  MAX        
100000000
#define  BUFFER     
300
#define  INPUTFILE  
"./50.txt"
/*==========MACROS  END==================*/

/*==========STD DECLRARS BEGIN===========*/
using std::cout;
using std::cin;
using std::endl;
using std::ios;
using std::ifstream;
using std::sort;
using std::max;
/*==========STD DECLARS END===============*/

/*============STRUCTS BRGIN===============*/ 
struct 
Space {
       
int x;
       
int y;
       
int w;
       
int h;
       bool v;
//IF VISITED THEN V =TURE ELSE FLASE
       };
struct Gadget
{
       
int x;
       
int y;
       
int w;
       
int h;
};
/*=============STRUCT END=================*/



/*===========GADGET CUT BEGIN=============*/ 
        Gadget  result[BUFFER];
        Gadget  g[BUFFER];
        
int      bestH;
        
Space   space[BUFFER];
        
int spaceNum ;
        
int     W;
        
int     N;
        
int     H;  
        ifstream Fin; 
        
int     deep;   
        clock_t    start;
        clock_t     
end;

/*-------------FRIENDS METHOD--------------------*/
bool mycmpG(Gadget t1,Gadget t2){return t1.h
>t2.h;} 
/*-------------FRIENDS METHOD--------------------*/
 bool mycompS(
Space t1,Space t2){return t1.y<t2.y;}
/*-------------CONSTRUCT METHOD------------------*/
void init()
{   
    Fin.open(INPUTFILE,ios::in);
    Fin
>>N;
    Fin
>>W;
    
for(int i=0;i<N;i++)
      Fin
>>g[i].h>>g[i].w;
    sort(g,g
+N,mycmpG);
    
    
space[0].x=space[0].y=0;
    
space[0].h=MAX;
    
space[0].w=W;
    
for(int i=0;i<N;i++)
      
space[0].v=false;
    H
=0;
    deep
=0
    bestH 
= MAX;
    spaceNum 
= 1
}   
/*-------------CUT METHOD------------------*/
bool canBeCut(Gadget 
&g,int i,int &TaddSpace)
{
    
int addSpace = 0;    
    
if((space[i].h>=g.h)&&(space[i].w>=g.w)){
        
if(space[i].w>g.w){
            
space[spaceNum].x = space[i].x+g.w;
            
space[spaceNum].y = space[i].y;
            
space[spaceNum].h = g.h;
            
space[spaceNum].w = space[i].w - g.w;
            addSpace
++;
        }
        
if(space[i].h>g.h){
            
space[spaceNum+1].x = space[i].x;    
            
space[spaceNum+1].y = space[i].y+g.h;
            
if(space[i].h==MAX)
                
space[spaceNum+1].h = MAX;
            
else
                
space[spaceNum+1].h = space[i].h - g.h;
            
space[spaceNum+1].w = space[i].w;
            addSpace
++;
        }
        g.x 
= space[i].x;
        g.y 
= space[i].y;
        H 
= max(H,g.y+g.h);
        spaceNum 
+= addSpace;
        TaddSpace 
= addSpace;
        return 
true;
    }
    return 
false;
}
/*-------------THE MAIN METHOD--------------------*/
 void backTrack(
int which)
{   
// if(deep==100000)return;
    
// else deep++;
     sort(
space,space+spaceNum,mycompS);
     
Space   temp[BUFFER];
     
for(int i=0;i<spaceNum;i++)
        temp[i] 
= space[i];    
     
     
if(which==N)
      {
        
if(H<bestH)
        {    bestH 
= H;
            
for(int i = 0;i<N;i++)
              result[i]
=g[i];
           
        }
        return;
      }
     
int addSpace;
     
int Num=spaceNum;     
     
for(int i=0;i<Num;i++)
         
if(space[i].v == false)
          { 
            
int tempH=H;
            
if(canBeCut(g[which],i,addSpace))
            {       
                    
if(H>bestH)//剪枝 
                    {
                     H 
= tempH;
                     spaceNum 
-= addSpace;
                     continue;
                    }
                    
space[i].v = true;
                    backTrack(which
+1);
                    spaceNum
-=addSpace;
                    
space[i].v = false
                    H 
= tempH;
                    
for(int k=0;k<spaceNum;k++)
                    
space[k] = temp[k];        
             }         
          }
     
}
/*===========GADGET CUT END=============*/ 

/*========NEWBOX CLASS BEGIN============*/
class NEWBOX:
public QWidget
{   
    
public:
        NEWBOX(QWidget 
*parent=0);
    protected:
        void paintEvent(QPaintEvent 
*event); 
    
private:

};
/*NEWBOX METHOD*/
/*-----------------------------------*/
NEWBOX::NEWBOX(QWidget 
*parent):QWidget(parent)
{
     setFixedSize(W
*15,30*15);
     char temp[
5];
     sprintf(temp,
"%d",bestH);
     char title[
40]="H:";
     strcat(title,temp);
     char temp2[
20]=" Spend TIME:";
     char temp3[
5];
     sprintf(temp3,
"%f",(double)(end-start)/CLOCKS_PER_SEC);
     strcat(temp2,temp3);
     strcat(title,temp2);
     setWindowTitle(title);
     setPalette(QPalette(QColor(
250250200)));
     setAutoFillBackground(
true);
}
/*-----------------------------------*/
void NEWBOX::paintEvent(QPaintEvent 
*)
{    QPainter painter(this);
     painter.setPen(Qt::SolidLine);
     painter.setBrush(Qt::blue);
     painter.translate(
0,0);
     
for(int i=0;i<=N;i++)
     painter.drawRect(result[i].x
*15,30*15-result[i].y*15,
     result[i].w
*15,-result[i].h*15);  
}

/*=========NEWBOX CLASS END=============*/

int main(int argc, char *argv[])
{   QApplication app(argc, argv);
    init();
    start
=clock();
    backTrack(
0);
    
end= clock();//TIME END HERE
    NEWBOX newb;
    newb.show();
    return app.exec();

}

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲精品男同| 国产欧美日韩视频一区二区| 影音先锋在线一区| 欧美11—12娇小xxxx| 久久亚洲视频| a4yy欧美一区二区三区| 日韩午夜电影av| 国产欧美一区二区色老头| 久久精品视频在线看| 久久在线免费| 一区二区三区国产在线观看| 亚洲午夜久久久久久久久电影院| 国产精品亚洲片夜色在线| 久久九九99| 欧美高清在线视频| 午夜天堂精品久久久久| 久久久免费观看视频| 一区二区三区国产| 欧美影视一区| 在线亚洲激情| 久久亚洲色图| 午夜精品视频| 免费一区二区三区| 久久本道综合色狠狠五月| 老司机午夜精品视频| 亚洲综合视频1区| 蜜桃av噜噜一区二区三区| 亚洲欧美文学| 欧美精品久久久久久久久久| 久久精品综合一区| 欧美三日本三级少妇三99| 欧美 亚欧 日韩视频在线| 国产精品手机视频| 亚洲欧洲一二三| 精品1区2区| 午夜日韩在线观看| 国产精品99久久久久久久vr| 久久亚洲不卡| 久久久一区二区| 国产精品夜夜夜一区二区三区尤| 亚洲国产mv| 激情国产一区二区| 亚洲欧美在线网| 午夜精品在线视频| 欧美日韩中文字幕日韩欧美| 欧美激情1区2区3区| 国产一区二区毛片| 午夜久久美女| 欧美一区二区三区播放老司机| 欧美精品一区二区三区四区| 蜜桃av一区二区| 精品不卡一区二区三区| 午夜精品一区二区三区四区| 亚洲女同在线| 国产精品成人午夜| 一本色道久久综合亚洲精品不卡| 亚洲精品韩国| 欧美韩日一区二区| 亚洲欧洲一区| 这里只有精品丝袜| 欧美色123| 亚洲桃色在线一区| 亚洲欧美久久久久一区二区三区| 欧美日韩一区二区视频在线| 亚洲三级影院| 亚洲免费一区二区| 欧美天天视频| 亚洲欧美综合国产精品一区| 欧美一区二区三区播放老司机| 国产精品一区免费观看| 性欧美长视频| 美女诱惑一区| 日韩视频在线一区二区三区| 欧美日本精品| 亚洲先锋成人| 久久亚洲一区| 亚洲人在线视频| 国产精品久久久久9999| 亚洲欧美日韩在线不卡| 久久婷婷丁香| 亚洲人在线视频| 国产精品久久久久久久久婷婷 | 久久天天躁狠狠躁夜夜爽蜜月| 国产真实乱偷精品视频免| 久久另类ts人妖一区二区| 亚洲高清资源综合久久精品| 99热这里只有精品8| 国产精品国产馆在线真实露脸| 午夜在线一区| 亚洲国产精品123| 亚洲免费影视| 亚洲电影免费观看高清| 欧美日韩国产天堂| 欧美在线免费观看| 亚洲日本乱码在线观看| 欧美在线亚洲在线| 亚洲乱码一区二区| 国产午夜精品福利| 欧美人交a欧美精品| 午夜一区不卡| 日韩网站免费观看| 久热re这里精品视频在线6| 亚洲作爱视频| 伊人久久噜噜噜躁狠狠躁| 欧美日韩亚洲综合一区| 久久久久久久一区二区| 一区二区三区高清在线观看| 久久一区二区三区国产精品 | 欧美一区二区三区视频免费播放 | 国产精品成人免费精品自在线观看| 欧美一区二区三区四区在线观看地址 | 91久久精品一区二区三区| 欧美一区在线看| 在线亚洲一区二区| 亚洲国产二区| 国外成人免费视频| 国产精品jizz在线观看美国| 快射av在线播放一区| 性伦欧美刺激片在线观看| 99国内精品| 亚洲高清一区二区三区| 久久亚洲精选| 久久国产欧美精品| 亚洲专区一区| 亚洲一级在线观看| av成人激情| 99re热精品| 91久久夜色精品国产网站| 精品不卡在线| 好吊色欧美一区二区三区视频| 国产精品久久久久久久电影 | 久久久精品免费视频| 午夜久久资源| 欧美一区二区三区在线视频| 亚洲一区二区视频在线| 亚洲视频福利| 亚洲一区在线观看免费观看电影高清| 亚洲另类春色国产| 亚洲精品乱码久久久久久按摩观| 欧美激情中文字幕一区二区| 麻豆精品在线播放| 欧美电影在线观看完整版| 母乳一区在线观看| 欧美高清一区二区| 亚洲国产精品免费| 91久久线看在观草草青青| 亚洲人午夜精品免费| 日韩天天综合| 亚洲欧美国产制服动漫| 欧美亚洲自偷自偷| 久久久久久久综合| 欧美大色视频| 欧美三级资源在线| 国产婷婷色一区二区三区四区 | 免费美女久久99| 欧美片网站免费| 国产精品嫩草久久久久| 国产欧美日韩免费| 在线观看亚洲视频| 亚洲狼人综合| 欧美亚洲网站| 免费中文日韩| 99riav久久精品riav| 午夜精品www| 免费不卡在线视频| 欧美性jizz18性欧美| 国产欧美亚洲视频| 亚洲激情成人| 亚洲欧美在线免费观看| 玖玖精品视频| 日韩一区二区免费高清| 午夜久久一区| 欧美伦理影院| 很黄很黄激情成人| 中文av字幕一区| 美日韩精品视频免费看| 亚洲美女福利视频网站| 欧美一级理论性理论a| 欧美成人午夜77777| 国产精品一区免费视频| 亚洲精品少妇| 久久久久久久综合狠狠综合| 亚洲国产精品久久91精品| 亚洲女优在线| 欧美日本网站| 一区二区三区我不卡| 中国成人亚色综合网站| 免费一级欧美片在线观看| 这里只有精品丝袜| 蜜臀a∨国产成人精品| 国产欧美精品在线| 9色精品在线| 欧美sm重口味系列视频在线观看| 亚洲一区二区动漫| 欧美日韩性视频在线| 91久久中文| 美国成人直播| 久久国产精品一区二区三区| 国产精品美女999| 亚洲无毛电影|