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

算法學(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>
            午夜一区二区三视频在线观看| 亚洲免费视频一区二区| 久久久久久穴| 午夜在线一区二区| 亚洲一区二区在线| 欧美日韩成人一区二区| 最新热久久免费视频| 久久三级视频| 久久成人精品一区二区三区| 欧美日韩情趣电影| 99精品热视频| 99视频精品全国免费| 欧美日本国产一区| 一区二区三区**美女毛片| 欧美成人一区二区三区| 裸体一区二区| 亚洲精品一区久久久久久| 免费观看一级特黄欧美大片| 久久久人成影片一区二区三区观看 | 麻豆久久久9性大片| 久久精品女人| 亚洲国产精品免费| 亚洲国产欧美一区二区三区同亚洲 | 麻豆av一区二区三区久久| 伊甸园精品99久久久久久| 久久免费午夜影院| 美女精品国产| 正在播放亚洲| 亚洲欧美日韩在线观看a三区| 狠狠综合久久| 亚洲精品在线看| 国产欧美三级| 久热精品在线| 在线视频亚洲欧美| 亚洲欧美一级二级三级| 狠狠色2019综合网| 亚洲第一级黄色片| 国产精品久久久久久久第一福利| 久久久91精品国产一区二区三区| 蜜桃视频一区| 亚洲综合久久久久| 欧美在线视频a| 亚洲人成小说网站色在线| 亚洲精品免费一二三区| 国产精品日韩专区| 亚洲高清资源综合久久精品| 欧美亚洲不卡| 欧美电影专区| 国产精品亚洲人在线观看| 免费久久99精品国产| 欧美日一区二区在线观看| 久久只有精品| 国产精品一级久久久| 欧美黑人国产人伦爽爽爽| 国产精品一区免费观看| 欧美激情欧美激情在线五月| 欧美在线3区| 蜜桃久久av| 亚洲欧美日韩中文在线制服| 男人的天堂亚洲| 欧美成人69av| 亚洲国产日韩一级| 欧美日韩高清在线| 国产精品99久久久久久久久 | 久久亚洲综合网| 欧美亚洲一区二区三区| 国产精品久久久久av| 91久久线看在观草草青青| 亚洲第一天堂无码专区| 日韩视频亚洲视频| 欧美亚洲视频一区二区| 亚洲最新色图| 久久精品在这里| 亚洲欧美日韩一区二区三区在线| 另类成人小视频在线| 欧美永久精品| 欧美视频免费在线观看| 欧美黄污视频| 国产一区在线播放| 亚洲一卡久久| 中文一区二区| 欧美精品亚洲二区| 欧美高清视频在线| 狠狠色综合播放一区二区| 亚洲欧美色婷婷| 午夜亚洲伦理| 欧美日韩日本网| 亚洲人成免费| 亚洲成人在线| 美女国内精品自产拍在线播放| 久久一二三四| 国产欧美一区二区视频| 亚洲午夜电影| 亚洲伊人网站| 国产精品久久国产愉拍| 9l视频自拍蝌蚪9l视频成人| 亚洲欧洲一区二区三区| 蜜臀99久久精品久久久久久软件| 久久亚洲综合网| 激情综合色综合久久| 久久精品女人| 欧美激情一区二区三区在线| 亚洲黄色性网站| 欧美大片国产精品| 亚洲精品视频免费观看| 夜夜嗨av一区二区三区四区| 欧美另类在线观看| 一本色道久久综合亚洲91| 亚洲欧美日韩国产一区二区三区 | 亚洲视频狠狠| 91久久精品国产91性色tv| 91久久精品国产91久久性色| 国产精品乱子久久久久| 久久精品国产第一区二区三区最新章节 | 亚洲视频电影图片偷拍一区| 欧美精品一线| 在线欧美视频| 欧美久久久久久| 在线视频欧美日韩| 欧美一激情一区二区三区| 国产午夜精品久久久久久久| 欧美在线黄色| 欧美激情亚洲视频| 亚洲午夜精品视频| 国产午夜精品久久久| 亚洲国产日韩欧美| 一本久久精品一区二区| 国产精品每日更新在线播放网址| 亚洲欧美精品在线观看| 免费短视频成人日韩| 夜色激情一区二区| 国产丝袜美腿一区二区三区| 久久久久久欧美| 日韩视频在线观看免费| 欧美在线视频一区二区| 欧美日韩亚洲一区二区三区四区| 亚洲视频免费看| 欧美不卡视频一区发布| 亚洲视屏在线播放| 今天的高清视频免费播放成人| 欧美激情片在线观看| 西西裸体人体做爰大胆久久久| 欧美激情成人在线视频| 欧美一区二区三区四区夜夜大片| 亚洲国产精品一区二区www| 欧美日韩亚洲高清一区二区| 欧美亚洲视频| 亚洲视频在线二区| 亚洲大胆美女视频| 久久激情婷婷| 亚洲小说欧美另类婷婷| 在线精品视频免费观看| 国产精品久久久久久久久久免费看| 欧美在现视频| 一区二区日韩| 亚洲经典视频在线观看| 国产丝袜美腿一区二区三区| 欧美日韩专区| 欧美久久电影| 欧美国产日韩一二三区| 久久久久久色| 欧美自拍偷拍午夜视频| 亚洲一区二区视频在线| 一区二区三区欧美亚洲| 亚洲日本黄色| 欧美激情二区三区| 免费看的黄色欧美网站| 欧美在线综合| 欧美一级一区| 欧美在线免费观看| 亚洲专区欧美专区| 亚洲调教视频在线观看| 99视频精品全国免费| 亚洲精品免费看| 亚洲美女色禁图| 亚洲伦理一区| 99这里只有久久精品视频| 亚洲精品日本| 亚洲精品视频在线播放| 91久久一区二区| 亚洲视频在线二区| 亚洲视频在线观看网站| 一区二区三区.www| 日韩一级在线| 在线天堂一区av电影| 一区二区三区视频在线观看| a91a精品视频在线观看| 一本色道久久综合亚洲二区三区| 亚洲色图在线视频| 亚洲欧美日韩国产一区二区| 午夜一区不卡| 久久久久久久成人| 美女主播视频一区| 欧美激情无毛| 国产精品高潮在线| 国产一区二区三区在线观看免费| 精品999日本| 99热精品在线观看| 亚洲网站在线观看| 欧美在线观看视频一区二区三区 |