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

算法學(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) 評(píng)論(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>
            欧美成人亚洲| 欧美激情a∨在线视频播放| 一区二区三区成人| 久久全国免费视频| 夜色激情一区二区| 久久婷婷国产综合精品青草| 国产精品乱人伦一区二区 | 欧美一区二区| 宅男噜噜噜66一区二区66| 欧美精品v日韩精品v韩国精品v| 亚洲第一成人在线| 麻豆视频一区二区| 久久久福利视频| 狠狠色丁香婷婷综合久久片| 久久国产乱子精品免费女| 亚洲一区在线免费| 日韩亚洲视频在线| 欧美中文字幕| 亚洲午夜激情网站| 国产精品青草久久| 亚洲在线中文字幕| 亚洲网站视频| 国产日韩精品一区二区| 久久国产精品久久国产精品| 亚洲你懂的在线视频| 国产精品女主播一区二区三区| 一本色道久久综合亚洲精品不| 亚洲美女精品成人在线视频| 欧美日韩免费网站| 亚洲欧美久久| 亚洲欧美韩国| 国色天香一区二区| 欧美电影免费网站| 欧美福利专区| 亚洲二区在线视频| 欧美99在线视频观看| 国产亚洲成人一区| 久久视频在线视频| 欧美粗暴jizz性欧美20| 宅男噜噜噜66国产日韩在线观看| 一区二区三区波多野结衣在线观看| 国产精品二区三区四区| 久久精品一级爱片| 欧美成人综合在线| 香蕉乱码成人久久天堂爱免费| 欧美一区二区在线看| 91久久夜色精品国产九色| 亚洲精品老司机| 国产区精品视频| 亚洲国产精品成人精品| 国产乱理伦片在线观看夜一区| 在线精品亚洲| 亚洲一区二区三区在线| 久久亚洲精品伦理| 国产精品盗摄久久久| 欧美成人激情视频免费观看| 欧美视频在线免费| 亚洲伦理网站| 一区二区三区日韩精品视频| 欧美日韩在线亚洲一区蜜芽| 一本大道av伊人久久综合| 欧美体内she精视频| 久久精品国产亚洲精品| 欧美粗暴jizz性欧美20| 久久精品久久99精品久久| 久久亚洲综合色| 久久精品二区| 欧美日韩午夜精品| 免费中文字幕日韩欧美| 国产麻豆午夜三级精品| 一区二区三区鲁丝不卡| 亚洲美女视频在线观看| 亚洲欧美电影在线观看| 亚洲国产精品va在线看黑人动漫| 中文国产成人精品| 亚洲精品一区二区三区婷婷月| 欧美亚洲三区| 亚洲欧美国产精品桃花| 欧美激情国产高清| 欧美91大片| 黄色成人av| 午夜在线视频一区二区区别| 亚洲视频一区二区| 欧美激情精品久久久久久黑人| 蜜桃av一区二区| 国内精品伊人久久久久av一坑| 亚洲一区二区三区中文字幕| 一区二区动漫| 欧美精品午夜| 亚洲精品在线视频观看| 日韩一区二区精品在线观看| 免费欧美在线视频| 欧美成人免费小视频| 在线看片第一页欧美| 久久香蕉国产线看观看av| 免费成人av在线看| 亚洲黄色免费网站| 欧美国产精品va在线观看| 亚洲国产精品一区| 亚洲国产精品一区二区第一页| 久久人体大胆视频| 欧美成人精品激情在线观看 | 亚洲深夜影院| 午夜一区二区三区不卡视频| 一区二区免费在线播放| 欧美激情自拍| 欧美xx视频| 免费永久网站黄欧美| 久久九九国产精品| 欧美一区日本一区韩国一区| 性色av一区二区怡红| 亚洲欧美国产77777| 99热免费精品在线观看| 亚洲高清在线精品| 亚洲国产精品va在线看黑人动漫| 久久福利视频导航| 蜜臀91精品一区二区三区| 在线观看日韩www视频免费 | 亚洲国产裸拍裸体视频在线观看乱了中文 | 国产精品高清网站| 久久爱另类一区二区小说| 亚洲毛片网站| 免费在线看一区| 亚洲国产日韩欧美在线图片| 欧美大片网址| 亚洲图片在线观看| 久久婷婷av| 夜夜爽99久久国产综合精品女不卡| 国产精品户外野外| 久久嫩草精品久久久精品| 亚洲精品视频免费观看| 性8sex亚洲区入口| 亚洲国产精品久久91精品| 欧美日韩亚洲一区| 久久国产视频网| 亚洲精品三级| 久久精品噜噜噜成人av农村| 亚洲精品日韩在线观看| 国产精品一区在线观看| 美女尤物久久精品| 亚洲制服av| 亚洲国产精彩中文乱码av在线播放| 一区二区久久久久久| 韩国av一区二区| 欧美日韩1区| 久久精品午夜| 日韩视频精品| 欧美成人精品高清在线播放| 久久国产精品第一页| 一区二区高清| 国产综合18久久久久久| 亚洲午夜一区二区| 欧美午夜a级限制福利片| 亚洲影院色无极综合| 亚洲精品国产精品国产自| 久久只精品国产| 亚洲第一在线| 亚洲国产影院| 欧美日本在线观看| 99这里只有久久精品视频| 欧美77777| 国产一区二区三区高清| 国产精品免费看片| 久久久久成人精品免费播放动漫| 亚洲美女黄色片| 亚洲国产精品免费| 久久免费精品日本久久中文字幕| 一区二区免费在线观看| 在线看不卡av| 狠狠色狠色综合曰曰| 国产欧美精品xxxx另类| 国产精品久久久久9999吃药| 欧美精品在线观看一区二区| 免费成人激情视频| 久久免费视频在线观看| 久久超碰97人人做人人爱| 欧美一区二区三区在线看| 亚洲天堂偷拍| av成人免费在线观看| 亚洲麻豆av| 日韩视频亚洲视频| 一本一本大道香蕉久在线精品| 亚洲国产欧美一区二区三区同亚洲| 蜜臀va亚洲va欧美va天堂| 久久综合图片| 老妇喷水一区二区三区| 午夜精品在线观看| 老司机免费视频一区二区| 亚洲风情在线资源站| 国产一区二区三区无遮挡| 国产一区二区无遮挡| 久久精品麻豆| 久久综合久久美利坚合众国| 久久精品国产999大香线蕉| 欧美一区免费| 久久久人成影片一区二区三区| 久久综合九色欧美综合狠狠| 欧美高清在线播放| 欧美日韩另类综合| 国产精品久久久久久久久久免费看|