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

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>
            亚洲欧美国产不卡| 一区二区激情| 亚洲私人影院| 一区二区三区www| 一区二区欧美视频| 亚洲欧美三级伦理| 欧美伊人久久久久久久久影院 | 欧美成人精品高清在线播放| 久久在线视频在线| 亚洲美女中文字幕| 在线亚洲+欧美+日本专区| 亚洲一区二区在线播放| 亚洲黄网站在线观看| 狂野欧美一区| 另类亚洲自拍| 欧美日韩精品一区二区| 国产精品视频一区二区三区| 国产在线欧美日韩| 久久精品免视看| 国产日韩精品一区观看| 激情成人在线视频| 日韩亚洲不卡在线| 亚洲欧美综合网| 免费不卡视频| 中文在线一区| 免费久久精品视频| 国产精品无码永久免费888| 亚洲第一伊人| 欧美有码视频| 亚洲免费观看高清完整版在线观看熊| 亚洲网站视频福利| 欧美freesex8一10精品| 国产欧美一级| 中国成人在线视频| 欧美国产欧美亚洲国产日韩mv天天看完整 | 精品粉嫩aⅴ一区二区三区四区| 亚洲欧洲一区二区三区在线观看 | 久久久久久电影| 日韩视频在线观看| 久久综合九色欧美综合狠狠| 国产美女精品一区二区三区| 一级日韩一区在线观看| 久久免费一区| 欧美日韩一区二区免费在线观看 | 久久精品三级| 亚洲伦理中文字幕| 蜜乳av另类精品一区二区| 国产日韩欧美91| 欧美与欧洲交xxxx免费观看| 夜夜精品视频一区二区| 欧美激情在线| 亚洲免费观看高清完整版在线观看熊| 久久亚洲二区| 久久午夜电影| 亚洲国产欧美在线| 久久久久国产一区二区三区四区| 亚洲网站在线看| 国产精品高潮呻吟久久av无限| 中日韩高清电影网| 日韩亚洲视频| 国产精品vip| 欧美一区二区高清| 欧美一区二区三区免费观看视频| 日韩天堂在线视频| 国产精品视频久久| 亚洲视频一二三| 亚洲每日更新| 国产精品家庭影院| 性欧美暴力猛交69hd| 亚洲尤物精选| 国产亚洲欧美激情| 另类天堂av| 欧美肥婆在线| 国产精品99久久久久久久久| 一本色道久久综合亚洲精品小说| 欧美视频二区| 久久国产精品亚洲va麻豆| 欧美一区二区三区久久精品茉莉花 | 亚洲高清视频在线| 欧美极品一区| 亚洲欧美综合另类中字| 欧美在线免费播放| 小嫩嫩精品导航| 亚洲一区二区三区国产| 亚洲伊人第一页| 狠狠色噜噜狠狠色综合久| 亚洲成人在线网站| 欧美日韩1234| 久久精品国产精品亚洲| 久久综合色播五月| 亚洲视频欧美在线| 欧美一区二区私人影院日本| 尤物九九久久国产精品的分类| 亚洲破处大片| 国产色产综合色产在线视频| 欧美国产在线电影| 国产精品一区一区| 亚洲第一精品电影| 国产欧美一区二区精品秋霞影院 | 欧美午夜一区| 麻豆免费精品视频| 欧美午夜精品一区| 欧美成人激情视频| 国产精品久久久久久影院8一贰佰 国产精品久久久久久影视 | 99re66热这里只有精品3直播| 欧美三级资源在线| 麻豆九一精品爱看视频在线观看免费 | 一二美女精品欧洲| 在线观看日韩国产| 亚洲一二三区精品| 亚洲精品少妇| 久久久久综合一区二区三区| 亚洲一区三区电影在线观看| 麻豆91精品| 久久久久看片| 国产人成一区二区三区影院| 99在线精品免费视频九九视| 久久一区二区三区四区五区| 国产午夜精品久久| 国产一区二区久久精品| 亚洲人成亚洲人成在线观看| 国内精品伊人久久久久av影院 | 欧美一区激情| 亚洲欧美电影院| 欧美日韩高清在线一区| 欧美韩国日本一区| 韩国三级在线一区| 性做久久久久久久久| 午夜日韩av| 国产精品午夜在线| 一本色道久久综合狠狠躁的推荐| 亚洲美女在线国产| 欧美金8天国| 亚洲精品日产精品乱码不卡| 亚洲伦理在线观看| 欧美激情第10页| 亚洲欧洲在线观看| 一区二区三区四区精品| 欧美日韩国产综合网| 亚洲免费电影在线观看| 在线视频日韩精品| 欧美婷婷久久| 亚洲夜晚福利在线观看| 欧美一区二区高清| 国产综合香蕉五月婷在线| 久久精精品视频| 欧美大香线蕉线伊人久久国产精品| 在线观看日韩av先锋影音电影院| 浪潮色综合久久天堂| 亚洲国产乱码最新视频| 一本久道久久综合中文字幕| 欧美色图五月天| 午夜老司机精品| 欧美成人免费播放| aaa亚洲精品一二三区| 欧美亚一区二区| 欧美在线三级| 亚洲福利国产精品| 中文一区二区在线观看| 国产拍揄自揄精品视频麻豆| 久久精品视频一| 亚洲国产另类久久精品| 亚洲与欧洲av电影| 性色av一区二区三区红粉影视| 久久久久久网站| 亚洲激情二区| 香蕉免费一区二区三区在线观看| 国产曰批免费观看久久久| 你懂的国产精品| 亚洲午夜极品| 欧美大片免费观看| 亚洲欧美国产77777| 亚洲成在线观看| 欧美性事在线| 久久综合给合久久狠狠狠97色69| 夜夜嗨av一区二区三区中文字幕 | 亚洲国产精品一区二区第四页av| 欧美日韩影院| 久久网站免费| 午夜精品视频| 日韩午夜av在线| 男人插女人欧美| 欧美一区二区国产| 午夜精品一区二区三区在线视 | 久久久综合网| 一区二区三区日韩在线观看| 黑丝一区二区三区| 欧美午夜激情小视频| 久久久久久9| 亚洲欧美日韩高清| 日韩视频久久| 亚洲国产第一| 美女福利精品视频| 久久国产精品黑丝| 亚洲一区bb| 在线中文字幕不卡| 亚洲人成欧美中文字幕| 国产原创一区二区| 国产日韩在线视频| 国产九九精品视频|