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

算法學(xué)社
記錄難忘的征途
posts - 141,comments - 220,trackbacks - 0
題目描述:
   玩flood-it游戲, 一個(gè)8*8的帶6種顏色的格子. 每次占領(lǐng)與已占領(lǐng)的聯(lián)通塊相鄰的聯(lián)通塊, 問最少幾次可以全部占領(lǐng)完. 第一次占領(lǐng)左上角.

算法分析:
   不知道是不是數(shù)據(jù)變?nèi)趿?還是服務(wù)器太快了. 最基本的IDA*就可以過. 估價(jià)函數(shù)設(shè)成最傻的都可以. 

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 using namespace std;
 5 const int N = 8;
 6 typedef pair<int,int> pnt;
 7 int vis[N][N], num[N][N], n, tp;
 8 pnt Q[N*N];
 9 inline bool fit(int x,int y){
10     return x >= 0 && x < n && y >= 0 && y < n && !vis[x][y];
11 }
12 inline void bfs(int sx,int sy) {
13     int head = 0, tail = 1;
14     vis[sx][sy] = 1;
15     Q[0] = make_pair(sx, sy);
16     int c = num[sx][sy];
17     //cout<< "bfs: "<<endl;
18     //cout<< c << endl;
19     while(head < tail) {
20         pnt u = Q[head ++];
21         for(int i = 0; i < 4; i++){
22             int x = u.first + (i == 0) - (i == 1);
23             int y = u.second + (i == 2) - (i == 3);
24             if(fit(x,y) && num[x][y] == c){
25         //        cout<<"v: "<<x<<" "<<y<<" "<< num[x][y]<<endl;
26                 vis[x][y] = 1;
27                 Q[tail ++] = make_pair(x, y);
28             }}}
29 }
30 typedef unsigned long long ll;
31 inline ll hash(){
32     ll ans = 0;
33     for(int i = 0; i< n; i++)
34         for(int j = 0; j < n; j ++)
35             ans <<= 1, ans ^= vis[i][j];
36     return ans;
37 }
38 inline void rehash(ll t) {
39     for(int i = n-1; i>= 0; i--)
40         for(int j = n-1; j>=0 ;j--, t>>=1)
41             vis[i][j] = t&1;
42 }
43 inline int cal(){
44     int h[6] = {0};
45     for(int i = 0; i < n; i++)
46         for(int j = 0; j< n; j++) if(!vis[i][j])
47             h[num[i][j]] = 1;
48     int ans = 0;
49     for(int i = 0; i < 6; i++)
50         ans += h[i];
51     return ans;
52 }
53 int dfs(int lvl) {
54     //cout<<"lvl: "<<lvl<<endl;
55     if(lvl == tp) return cal() == 0;
56     if(cal()+ lvl > tp) return 0;
57     ll tmp = hash();
58     for(int c = 0; c < 6; c ++){
59         int flag = 0;
60         for(int i = 0; i < n; i++)
61             for(int j = 0; j< n; j++) if(vis[i][j]) {
62                 for(int p = 0; p < 4; p ++ ){
63                     int x = i + (p == 0) - (p == 1);
64                     int y = j + (p == 2) - (p == 3);
65                     if(fit(x,y) && num[x][y] == c){
66                         bfs(x,y);
67                         flag = 1;
68                     }
69             }}
70         if(!flag) continue;
71         if(dfs(lvl + 1)) return 1;
72         rehash(tmp);
73     }
74     return 0;
75 }
76 int main(){
77     while(scanf("%d",&n), n) {
78         for(int i = 0; i < n ; i ++)
79             for(int j = 0; j < n; j++)
80                 scanf("%d",&num[i][j]);
81         memset(vis, 0, sizeof(vis));
82         bfs(0,0);
83         ll tmp = hash();
84         for(tp=cal();;tp++) {
85 //            cout<<tp<<endl;
86             if(dfs(0)) break;
87             rehash(tmp);
88         }
89         printf("%d\n",tp);
90     }
91 }
92 
posted on 2012-08-15 20:56 西月弦 閱讀(434) 評論(0)  編輯 收藏 引用 所屬分類: 解題報(bào)告
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲午夜av| 亚洲人成在线观看一区二区| 国产精品卡一卡二卡三| 最新成人av在线| 久久青草福利网站| 亚洲尤物在线| 欧美三级午夜理伦三级中视频| 亚洲第一搞黄网站| 久久久777| 亚洲免费一在线| 国产精品色在线| 亚洲男女自偷自拍图片另类| 亚洲国产电影| 欧美黄色影院| 性色av一区二区三区在线观看 | 伊人影院久久| 在线亚洲一区观看| 欧美日韩视频在线一区二区观看视频| 亚洲黄色成人久久久| 亚洲欧洲日韩综合二区| 在线观看免费视频综合| 久久成人这里只有精品| 校园春色国产精品| 国产乱码精品一区二区三区av| 羞羞漫画18久久大片| 亚洲精品乱码久久久久久久久| 久久久久久噜噜噜久久久精品| 精品99一区二区| 欧美国产三级| 欧美女激情福利| 亚洲欧洲精品一区二区三区| 久久国产成人| 久久精品亚洲一区二区| 韩国一区二区在线观看| 日韩一级免费观看| 香蕉久久夜色| 国产精品羞羞答答| 一本色道综合亚洲| 韩日欧美一区二区三区| 亚洲视频一区| 亚洲午夜羞羞片| 国产精自产拍久久久久久蜜 | 亚洲精品视频免费在线观看| 欧美精品一区二区三| 在线精品亚洲| 激情五月婷婷综合| 亚洲国产中文字幕在线观看| 欧美日韩国产色综合一二三四| 亚洲午夜电影网| 韩国欧美国产1区| 欧美日韩国产一中文字不卡 | 亚洲高清在线观看| 国产精品网站一区| 欧美成人精品一区| 欧美日韩小视频| 久久久www成人免费毛片麻豆| 免费成人在线观看视频| 亚洲欧美精品在线观看| 老鸭窝毛片一区二区三区 | 久久国产精品久久w女人spa| 久久夜色精品亚洲噜噜国产mv| 亚洲视频二区| 久久一区二区三区超碰国产精品| 亚洲无线观看| 女人香蕉久久**毛片精品| 欧美一区二区三区在线观看| 欧美成人第一页| 久久精品女人| 欧美色图五月天| 亚洲丰满在线| 狠狠色噜噜狠狠色综合久| 99热在这里有精品免费| 在线精品福利| 欧美在线观看一区二区| 亚洲色图制服丝袜| 欧美激情国产日韩| 欧美电影美腿模特1979在线看| 国产日韩综合一区二区性色av| 一区二区欧美国产| 亚洲美女黄网| 免费在线观看成人av| 久久视频国产精品免费视频在线| 国产精品第十页| 99精品视频免费观看| 99精品视频一区| 欧美国产一区二区在线观看| 模特精品裸拍一区| 伊人成人网在线看| 久久久久一区二区| 久久久中精品2020中文| 国产亚洲欧美日韩精品| 午夜精品在线| 久久久久久日产精品| 国产人久久人人人人爽| 亚洲欧美日韩国产中文 | 亚洲精品资源| 中国成人在线视频| 欧美日韩系列| 亚洲制服欧美中文字幕中文字幕| 亚洲欧美日韩综合| 久久久最新网址| 欧美激情女人20p| 亚洲永久免费视频| 先锋影音久久久| 亚洲一区在线免费观看| 妖精成人www高清在线观看| 一本色道久久综合狠狠躁篇的优点 | 男女av一区三区二区色多| 欧美~级网站不卡| 亚洲成色www久久网站| 怡红院av一区二区三区| 免费看精品久久片| 最新成人av网站| 国产精品99久久久久久www| 欧美日韩一区高清| 亚洲欧美国产三级| 久久久久久久久久看片| 亚洲第一主播视频| 欧美日韩精品福利| 亚洲一区二区三区欧美| 久久激情五月激情| 亚洲日本欧美日韩高观看| 欧美日韩不卡视频| 亚洲欧美日韩系列| 欧美岛国激情| 西西人体一区二区| 亚洲国产成人精品久久| 欧美日韩视频在线一区二区 | 中国日韩欧美久久久久久久久| 欧美亚洲三区| 亚洲国产视频一区二区| 欧美午夜无遮挡| 久久精品亚洲热| 在线视频精品一| 久久综合九色| 亚洲欧美日韩人成在线播放| 在线成人小视频| 国产精品入口尤物| 欧美成人免费大片| 亚洲欧美日韩国产| 亚洲欧洲精品一区二区三区波多野1战4 | 久久精品亚洲一区二区| 亚洲精选一区| 久久久久久久久久码影片| 在线性视频日韩欧美| 国产一区二三区| 欧美日韩日本国产亚洲在线| 久久男人资源视频| 亚洲欧美视频在线| 亚洲免费观看| 亚洲国产成人不卡| 毛片av中文字幕一区二区| 午夜精品影院| 中文一区二区在线观看| 91久久黄色| 影音先锋中文字幕一区| 国产丝袜美腿一区二区三区| 欧美激情中文不卡| 国产精品视频| 欧美精品七区| 六月天综合网| 欧美一区视频| 午夜精品影院在线观看| 日韩视频在线观看一区二区| 欧美大片专区| 亚洲福利国产| 欧美国产激情| 欧美国产精品劲爆| 久久亚裔精品欧美| 久久久水蜜桃| 久久精品亚洲乱码伦伦中文 | 亚洲成色www8888| 欧美99久久| 欧美国产91| 最近中文字幕mv在线一区二区三区四区| 免费观看不卡av| 欧美激情欧美狂野欧美精品| 欧美大片免费观看| 亚洲国产高潮在线观看| 亚洲第一主播视频| 亚洲国产成人午夜在线一区| 亚洲大片av| 亚洲人体1000| 在线视频欧美精品| 亚洲一区二区三区视频| 亚洲一区二区免费视频| 亚洲一区二区三| 欧美在线观看一区二区三区| 久久精品国产第一区二区三区最新章节| 午夜在线电影亚洲一区| 欧美一区影院| 老司机精品久久| 欧美日韩精品一区二区三区| 国产精品成人aaaaa网站| 国产免费观看久久| 亚洲福利在线视频| 99国产精品视频免费观看一公开| 亚洲丝袜av一区| 欧美在线免费| 欧美va天堂|