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

糯米

TI DaVinci, gstreamer, ffmpeg
隨筆 - 167, 文章 - 0, 評論 - 47, 引用 - 0
數據加載中……

HDU 2822 Dogs 寬搜

這題用普通的寬搜可以解決。
關鍵問題在于由于是寬搜,隊列里面的元素的step字段必須是從前往后遞增的。
在碰到一大堆聯通的'X'之后,必須另外進行一次遍歷,同時的把這些'X'插入到隊列中,保持step字段的遞增。
這樣做復雜度并不改變。

#include <stdio.h>

#define NR 1024

struct node {
    
short x, y;
    
int s;
}
;
char map[NR][NR];
struct node Q[NR*NR];
int W, H;
int sx, sy, ex, ey;
int h, t, h2;

inline 
int inrange(short x, short y)
{
    
return x >= 0 && x < W && y >= 0 && y < H;
}


inline 
void push2(short x, short y, int s)
{
    
if (!inrange(x, y))
       
return ;
    
if (map[y][x] == 'X' || map[y][x] == '.'{
//        printf("p2 %d %d %d\n", x, y, s);
        Q[t].x = x;
        Q[t].y 
= y;
        
if (map[y][x] == '.'{
            map[y][x] 
= '#';
            Q[t].s 
= s + 1;
        }
 else {
            map[y][x] 
= '$';
            Q[t].s 
= s;
        }

        t
++;
    }

}


inline 
void bfs2(short x, short y, int s)
{
    
struct node n;

    push2(x, y, s);
    h2 
= t - 1;
    
while (h2 != t) {
        n 
= Q[h2++];
        
if (map[n.y][n.x] == '#')
            
continue;
        push2(n.x 
- 1, n.y, n.s);
        push2(n.x 
+ 1, n.y, n.s);
        push2(n.x, n.y 
- 1, n.s);
        push2(n.x, n.y 
+ 1, n.s);
    }

}


inline 
void push(short x, short y, int s)
{
    
if (!inrange(x, y)) 
        
return ;
    
if (map[y][x] == '.'{
//        printf("p %d %d %d\n", x, y, s);
        Q[t].x = x;
        Q[t].y 
= y;
        Q[t].s 
= s + 1;
        t
++;
        map[y][x] 
= '@';
    }
 else if (map[y][x] == 'X')
        bfs2(x, y, s);
}


inline 
int bfs()
{
    
struct node n;

    t 
= h = 0;
    push(sx, sy, 
0);
    
while (t != h) {
        n 
= Q[h++];
        
if (n.x == ex && n.y == ey)
            
return n.s;
        
if (map[n.y][n.x] == '$')
            
continue;
        push(n.x 
- 1, n.y, n.s);
        push(n.x 
+ 1, n.y, n.s);
        push(n.x, n.y 
- 1, n.s);
        push(n.x, n.y 
+ 1, n.s);
    }

}


int main()
{
    
int i;

    
while (scanf("%d%d"&H, &W), H) {
        
for (i = 0; i < H; i++)
            scanf(
"%s", map[i]);
        scanf(
"%d%d%d%d"&sy, &sx, &ey, &ex);
        sy
--; sx--; ey--; ex--;
        printf(
"%d\n", bfs());
    }


    
return 0;
}

posted on 2010-10-25 22:06 糯米 閱讀(273) 評論(0)  編輯 收藏 引用


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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| 久久久国产精品一区二区三区| 欧美激情乱人伦| 午夜老司机精品| 一本大道久久精品懂色aⅴ| 欧美国产日本高清在线| 久久久久久精| 蜜臀91精品一区二区三区| 久久亚洲春色中文字幕久久久| 欧美影片第一页| 久久理论片午夜琪琪电影网| 久久免费99精品久久久久久| 久久琪琪电影院| 亚洲国产另类久久精品| 国产自产女人91一区在线观看| 欧美日产国产成人免费图片| 欧美日韩精品一区二区| 国产精品裸体一区二区三区| 国产视频欧美| 日韩视频在线播放| 西瓜成人精品人成网站| 鲁大师影院一区二区三区| 亚洲国产另类精品专区| 亚洲欧美日韩精品久久久久 | 国产精品美女久久久久久久| 国产精品chinese| 在线精品一区二区| 亚洲欧美日韩国产综合| 亚洲国产精品久久久久秋霞影院| 制服丝袜亚洲播放| 久久精品首页| 国产伦精品一区二区三区免费 | 亚洲国产高清自拍| 亚洲欧美激情一区| 亚洲欧洲午夜| 欧美日韩在线观看一区二区| 伊人久久噜噜噜躁狠狠躁| 新狼窝色av性久久久久久| 欧美激情欧美狂野欧美精品| 欧美影院视频| 国产日韩综合| 久久久亚洲一区| 久久久久在线| 亚洲欧美日韩区| 欧美成人高清| 久久久夜精品| 亚洲人被黑人高潮完整版| 欧美chengren| 欧美色图一区二区三区| 亚洲综合国产激情另类一区| 性欧美videos另类喷潮| 国产一区激情| 亚洲第一在线综合网站| 欧美日本簧片| 欧美1区3d| 国产精品美女一区二区| 久久手机免费观看| 欧美激情亚洲| 你懂的成人av| 国产精品亚洲综合一区在线观看| 久久久噜噜噜久噜久久| 欧美少妇一区二区| 91久久国产自产拍夜夜嗨| 国产美女搞久久| 999在线观看精品免费不卡网站| 激情欧美一区| 欧美一区日韩一区| 午夜在线一区| 国产精品国产三级国产专播品爱网| 久久青草欧美一区二区三区| 国产精品扒开腿做爽爽爽软件| 美女在线一区二区| 国产乱肥老妇国产一区二 | 亚洲第一中文字幕| 亚洲免费在线| 亚洲欧美日韩精品| 国产精品美女黄网| 亚洲一区二区在线看| 国产精品乱人伦中文| 欧美激情一区二区三区成人| 伊人激情综合| 免费看黄裸体一级大秀欧美| 久久综合九色99| 91久久综合亚洲鲁鲁五月天| 麻豆国产精品777777在线| 亚洲国产精品久久久久秋霞不卡 | 亚洲电影网站| 亚洲精品一区中文| 欧美日本在线一区| 在线亚洲免费| 西瓜成人精品人成网站| 狠久久av成人天堂| 男人的天堂成人在线| 亚洲人体一区| 久久精品论坛| 亚洲精品欧美一区二区三区| 国产麻豆9l精品三级站| 免费欧美日韩国产三级电影| 亚洲伦理在线免费看| 久久亚洲高清| 先锋影音久久久| 在线看片第一页欧美| 国产精品热久久久久夜色精品三区| 久久国产手机看片| 午夜精品久久久久影视| 99精品视频一区| 亚洲欧洲视频在线| 欧美激情第一页xxx| 久久一日本道色综合久久| 久久精品国产免费看久久精品| 99riav国产精品| 黑人一区二区三区四区五区| 国产精品高潮呻吟久久| 玖玖在线精品| 午夜精品福利电影| 亚洲午夜视频在线观看| 日韩一区二区高清| 一区二区三区精品在线| 一区二区91| 一区二区高清在线观看| 亚洲毛片一区二区| 99国产精品国产精品久久| 亚洲最新视频在线| 午夜精品福利在线观看| 午夜天堂精品久久久久| 久久福利精品| 久久最新视频| 国产精品久久久久aaaa| 国产日韩av在线播放| 亚洲激情二区| 亚洲综合大片69999| 久久国产婷婷国产香蕉| 男女精品视频| 亚洲一区二区高清| 久久精品国产77777蜜臀| 欧美成黄导航| 国产日韩欧美在线| 99re国产精品| 老司机精品视频网站| 亚洲美女在线视频| 老司机成人网| 国产欧美一区二区精品忘忧草| 亚洲国产精品第一区二区三区| 亚洲一区二区精品视频| 欧美黄色网络| 久久永久免费| 精品91在线| 久久精品卡一| 亚洲在线一区二区| 午夜精品视频在线观看| 亚洲国产日韩一区| 欧美精品久久久久久久免费观看 | 欧美另类视频在线| 国精品一区二区| 久久久精彩视频| 亚洲综合999| 欧美www视频| 亚洲伦理精品| 最新国产成人在线观看 | 一区二区三区日韩精品| 久久影视精品| 久久躁日日躁aaaaxxxx| aⅴ色国产欧美| 一区二区激情| 国产精品有限公司| 久久午夜视频| 久久久av网站| 一区二区国产在线观看| 亚洲综合国产激情另类一区| 国内精品视频在线播放| 亚洲国产成人tv| 国产精品久久二区二区| 男女激情久久| 国产伦精品一区二区三区四区免费| 久久久噜噜噜久久中文字幕色伊伊| 欧美在线影院| 在线综合欧美| 久久漫画官网| 久久国产精品99久久久久久老狼 | 欧美与欧洲交xxxx免费观看 | 亚洲欧美综合精品久久成人| 影音先锋中文字幕一区二区| 亚洲一级片在线看| 亚洲免费观看视频| 欧美一区成人| 欧美一区二区三区视频在线| 欧美jizzhd精品欧美喷水| 久久国产一区二区三区| 久久这里有精品视频| 欧美福利视频网站| 久久久久一区| 国产一区二区三区在线免费观看 | 亚洲日本中文字幕| 亚洲人成网站精品片在线观看 | 久久久久久久久久看片| 国产精品一区二区a| 亚洲欧美日韩久久精品| 久久精品视频免费播放| 国产午夜精品一区二区三区视频| 制服诱惑一区二区|