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

A Za, A Za, Fighting...

堅信:勤能補拙

USACO Packing Rectangles

問題:
http://ace.delos.com/usacoprob2?a=CTINrbaHwEW&S=packrec

思路:
這題不會,考慮的時候以為任意兩個矩陣至少存在相同的邊才可以合并...結果完全錯誤

參考:
http://starforever.blog.hexun.com/2097115_d.html
http://greenmoon55.com/usaco-packing-rectangles/

另外,這題學會了在C里面使用bool類型,原來不知道呢(*^__^*) 嘻嘻……
stdbool.h頭文件

代碼:
  1 /*
  2 ID: simplyz2
  3 LANG: C
  4 TASK: packrec
  5 */
  6 #include<stdio.h>
  7 #include<stdbool.h>
  8 #include<stdlib.h>
  9 #include<string.h>
 10 #define MAX_NUM 5
 11 #define INF 0x7FFFFFFF
 12 #define Max(a, b) ((a)>(b) ? (a) : (b))
 13 struct Rec {
 14     int h, w;
 15 } rectangle[MAX_NUM], rect[MAX_NUM], ans[MAX_NUM];
 16 bool used[MAX_NUM];
 17 int w, h, total, area;
 18 
 19 void
 20 exchange(struct Rec *r)
 21 {
 22     int temp = r->h;
 23     r->= r->w;
 24     r->= temp;
 25 }
 26 
 27 void
 28 judge()
 29 {
 30     int i, j, temp;
 31     if(w > h) {
 32         temp = w;
 33         w = h;
 34         h = temp;
 35     }
 36     if(w*<= area) {
 37         if(w*== area) {
 38             for(i=1; i<total; i++)
 39                 if(ans[i].w == w)
 40                     return;
 41             for(i=1; i<total; i++)
 42                 if(ans[i].w > w) {
 43                     for(j=total; j>i; j--)
 44                         ans[j] = ans[j-1];
 45                     ans[i].w = w;
 46                     ans[i].h = h;
 47                     ++total;
 48                     return;
 49                 }
 50             ans[total].w = w;
 51             ans[total++].h = h;
 52         } else {
 53             area = w*h;
 54             total = 1;
 55             ans[total].w = w;
 56             ans[total].h = h;
 57         }
 58     }
 59 }
 60 
 61 void
 62 work()
 63 {   
 64     //Case 1
 65     w=rect[1].w+rect[2].w+rect[3].w+rect[4].w;
 66     h=Max(rect[1].h,rect[2].h);
 67     h=Max(h,rect[3].h);
 68     h=Max(h,rect[4].h);
 69     judge();
 70  
 71     //Case 2
 72     w=Max(rect[1].w+rect[2].w+rect[3].w,rect[4].w);
 73     h=Max(rect[1].h,rect[2].h);
 74     h=Max(h,rect[3].h);
 75     h+=rect[4].h;
 76     judge();
 77  
 78     //Case 3
 79     w=Max(rect[1].w+rect[2].w,rect[3].w)+rect[4].w;
 80     h=Max(Max(rect[1].h,rect[2].h)+rect[3].h,rect[4].h);
 81     judge();
 82  
 83     //Case 4
 84     w=rect[1].w+Max(rect[2].w,rect[3].w)+rect[4].w;
 85     h=Max(rect[1].h,rect[4].h);
 86     h=Max(h,rect[2].h+rect[3].h);
 87     judge();
 88  
 89     //Case 6
 90     if (rect[3].h>=rect[2].h+rect[4].h)
 91     {
 92         w=Max(rect[3].w+rect[2].w,rect[3].w+rect[4].w);
 93         w=Max(w,rect[1].w);
 94         h=rect[1].h+rect[3].h;
 95         judge();
 96         return;
 97     }
 98     if (rect[3].h>rect[4].h)
 99     {
100         w=Max(rect[1].w+rect[2].w,rect[2].w+rect[3].w);
101         w=Max(w,rect[4].w+rect[3].w); 
102         h=Max(rect[1].h+rect[3].h,rect[2].h+rect[4].h);
103         judge();
104         return;
105     }
106     if (rect[3].h==rect[4].h)
107     {
108         w=Max(rect[1].w+rect[2].w,rect[3].w+rect[4].w);
109         h=Max(rect[1].h,rect[2].h)+rect[3].h;
110         judge();
111         return;
112     }
113     if (rect[3].h<rect[4].h && rect[4].h<rect[3].h+rect[1].h)
114     {
115         w=Max(rect[1].w+rect[2].w,rect[1].w+rect[4].w);
116         w=Max(w,rect[3].w+rect[4].w);
117         h=Max(rect[1].h+rect[3].h,rect[2].h+rect[4].h);
118         judge();
119         return;
120     }
121     w=Max(rect[2].w,rect[1].w+rect[4].w);
122     w=Max(w,rect[3].w+rect[4].w);
123     h=rect[4].h+rect[2].h;
124     judge(); 
125 }
126 
127 void
128 rotate(int depth)
129 {
130     if(depth == MAX_NUM) {
131         work();
132         return;
133     }
134     rotate(depth+1);
135     exchange(rect+depth);
136     rotate(depth+1);
137 }
138 
139 void
140 dfs(int depth)
141 {
142     int i;
143     if(depth == MAX_NUM) {
144         rotate(1);
145         return;
146     }
147     for(i=1; i<MAX_NUM; i++) {
148         if(!used[i]) {
149             used[i] = true;
150             rect[depth] = rectangle[i];
151             dfs(depth+1);
152             used[i] = false;
153         }
154     }
155 }
156 
157 int
158 main(int argc, char **argv)
159 {
160     int i;
161     freopen("packrec.in""r", stdin);
162     freopen("packrec.out""w", stdout);
163     for(i=1; i<MAX_NUM; i++)
164         scanf("%d %d"&rectangle[i].w, &rectangle[i].h);
165     total = 1;
166     area = INF;
167     memset(used, 0sizeof(used));
168     dfs(1);
169     printf("%d\n", area);
170     for(i=1; i<total; i++)
171         printf("%d %d\n", ans[i].w, ans[i].h);
172     return 0;
173 }

posted on 2010-10-13 19:45 simplyzhao 閱讀(407) 評論(0)  編輯 收藏 引用 所屬分類: B_搜索

導航

<2025年9月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

統計

常用鏈接

留言簿(1)

隨筆分類

隨筆檔案

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            国产精品试看| 欧美va亚洲va日韩∨a综合色| 国产精品毛片| 国产精品vip| 国产精品久久久久aaaa| 国产精品久久久久久久一区探花| 欧美日韩精品中文字幕| 欧美日韩国产黄| 欧美视频中文一区二区三区在线观看 | 中文亚洲视频在线| 亚洲视频第一页| 亚洲欧美一区二区视频| 欧美一区视频| 蜜桃伊人久久| 国产精品电影网站| 黄色成人91| 亚洲最新在线| 久久米奇亚洲| 亚洲毛片在线| 久久成人精品一区二区三区| 免费看亚洲片| 国产麻豆精品theporn| 亚洲国产免费| 久久gogo国模裸体人体| 亚洲欧洲精品成人久久奇米网| 91久久精品视频| 久久精品麻豆| 欧美少妇一区二区| 一区在线播放| 欧美一区二区三区在线免费观看| 欧美承认网站| 久久精品免费观看| 国产精品xxxav免费视频| 在线观看91精品国产入口| 99天天综合性| 老司机午夜精品视频| 亚洲图色在线| 欧美精品免费视频| 1024欧美极品| 久久久国产成人精品| 一区二区高清在线观看| 欧美大尺度在线观看| 国内激情久久| 欧美在线综合| 亚洲欧美日本另类| 国产精品视频九色porn| 亚洲视频欧洲视频| 亚洲国产综合91精品麻豆| 欧美一区二区观看视频| 国产精品久久久久影院亚瑟| 一本久久综合亚洲鲁鲁| 亚洲国产日韩欧美在线动漫| 久久久蜜桃一区二区人| 久久在线视频在线| 欧美高清视频在线播放| 欧美自拍丝袜亚洲| 国产亚洲欧美一区在线观看| 亚洲一区一卡| 蜜臀久久99精品久久久画质超高清| 欧美午夜精品理论片a级大开眼界 欧美午夜精品理论片a级按摩 | 亚洲欧美日韩国产另类专区| 欧美成人免费全部| 久久亚洲国产成人| 在线精品国产欧美| 奶水喷射视频一区| 老牛嫩草一区二区三区日本| 伊人成年综合电影网| 久久综合图片| 免费看精品久久片| 亚洲天堂av在线免费| 99re热这里只有精品视频| 欧美日韩一区二区三| 亚洲欧美日韩国产中文| 亚洲欧美日韩综合国产aⅴ| 国产日韩欧美成人| 久久九九免费| 久久精品综合一区| 亚洲国产精品久久91精品| 亚洲第一在线视频| 欧美日韩国产精品自在自线| 亚洲影院高清在线| 欧美在线观看天堂一区二区三区| 黄色av成人| 99国产精品久久久久久久成人热| 国产精品麻豆欧美日韩ww| 久久影视精品| 欧美精品在线观看| 欧美在线观看日本一区| 久久综合色一综合色88| 中日韩午夜理伦电影免费| 午夜精品一区二区三区四区 | 欧美日韩一区二区三区在线观看免| 亚洲影院色在线观看免费| 久久成人精品一区二区三区| 亚洲美女一区| 欧美一区二区三区四区夜夜大片| 亚洲激情网站免费观看| 亚洲一区制服诱惑| 亚洲日本va午夜在线影院| 亚洲在线观看免费视频| 亚洲国产午夜| 香蕉免费一区二区三区在线观看 | 另类天堂av| 欧美日韩精品一区二区在线播放| 欧美专区亚洲专区| 欧美日韩mv| 男人的天堂亚洲| 伊人男人综合视频网| 99精品视频免费观看视频| 国产一级精品aaaaa看| 91久久午夜| 黄色综合网站| 亚洲免费一在线| 亚洲欧洲日产国产综合网| 亚洲免费在线观看视频| 日韩亚洲精品在线| 亚洲精品极品| 亚洲国产精品高清久久久| 欧美一区二区免费| 亚洲国产婷婷综合在线精品| 一区二区三区高清不卡| 国产一区二区在线观看免费播放| 欧美96在线丨欧| 国产精品白丝jk黑袜喷水| 久久亚洲一区二区| 久久aⅴ国产欧美74aaa| 亚洲美女在线一区| 午夜一区在线| 99视频有精品| 久久夜色精品国产噜噜av| 欧美在线观看视频在线| 国产精品av久久久久久麻豆网| 亚洲日本理论电影| 亚洲精品专区| 男人插女人欧美| 欧美高清视频在线播放| 亚洲欧洲日本一区二区三区| 你懂的国产精品永久在线| 欧美成人免费播放| 亚洲韩国日本中文字幕| 老司机久久99久久精品播放免费| 久久一二三区| 在线日韩av永久免费观看| 久久裸体艺术| 亚洲成人中文| 99香蕉国产精品偷在线观看| 欧美日韩亚洲高清| 亚洲一区二区在| 久久久视频精品| 亚洲国产精品999| 免费观看亚洲视频大全| 亚洲第一精品久久忘忧草社区| 最新国产精品拍自在线播放| 欧美二区视频| 中文在线一区| 久久久夜夜夜| 亚洲欧洲另类| 国产精品日韩二区| 久久精品国产亚洲a| 亚洲国产91| 欧美一区二区三区视频在线观看| 国产一区二区三区在线观看视频| 久久久噜噜噜久久中文字幕色伊伊| 亚洲国产精品va在线看黑人| 亚洲午夜小视频| 国内精品模特av私拍在线观看 | 久久国产精品99国产| 美女尤物久久精品| 亚洲精品久久嫩草网站秘色| 国产精品jizz在线观看美国| 欧美一级成年大片在线观看| 欧美国产在线电影| 99pao成人国产永久免费视频| 欧美三区在线观看| 欧美在线观看视频| 亚洲人在线视频| 国产欧美日韩视频一区二区三区| 久久久久国产精品人| 尤妮丝一区二区裸体视频| 美女网站在线免费欧美精品| 亚洲成色777777在线观看影院| 一本色道久久综合精品竹菊| 欧美色视频日本高清在线观看| 午夜精品久久久久久99热软件| 女仆av观看一区| 亚洲主播在线播放| 国产午夜精品全部视频播放| 久久夜色撩人精品| 99国产精品久久久久久久| 久久一二三国产| 性欧美办公室18xxxxhd| 亚洲欧洲日韩在线| 狠狠色综合日日| 国产精品久久久久久久久动漫| 久久艳片www.17c.com| 亚洲亚洲精品在线观看| 最新成人av在线| 久热精品在线视频| 久久国产精品久久久久久| 日韩一级片网址|