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

A Za, A Za, Fighting...

堅信:勤能補拙

PKU 2312 Battle City

問題:
http://poj.org/problem?id=2312

思路:
這題糾結了...一上午都沒寫出來,原以為很簡單的(其實,很多人都說是簡單題,艾)
首先想到的是廣搜,因為是求從源點到目的地的最小步數嘛,典型的BFS,結果卻始終不知道如何表示每個狀態以及狀態間的判重
既然廣搜不會,那就深搜吧,恩,很快就寫出代碼,結果TLE...
無奈,只好在網上找解法,發現一種相當不錯的BFS代碼:

隊列的狀態只需要保存當前位置即可,另外用數組best[][]表示目前從源點到達每個點的最小步數
在從當前點擴展的時候,只將有最小步數更新的點加入隊列
這樣當BFS搜索結束時,每個best[i][j]都保存了從源點到點[i][j]的最短步數
原來還有這樣寫BFS的方法,又學習了(*^__^*) 嘻嘻……

上述算法有點類似于求最短路徑呵呵
而,事實上,這題是可以很容易轉化成圖論求單源最短路徑的

代碼:
 1 /* 32MS */
 2 #include<stdio.h>
 3 #include<stdlib.h>
 4 #include<string.h>
 5 #define MAX_LEN 301
 6 #define QUEUE_SIZE 90001
 7 #define INF 0x7FFFFFFF
 8 #define is_valid(x, y) ((x)>=0 && (x)<M && (y)>=0 && (y)<N)
 9 char map[MAX_LEN][MAX_LEN];
10 const int dx[] = {00-11};
11 const int dy[] = {-1100};
12 int M, N;
13 int you_x, you_y, target_x, target_y;
14 int best[MAX_LEN][MAX_LEN]; /* important, best[i][j] stores the current 'best solution' at map[i][j] */
15 struct Node {
16     int x, y;
17 } queue[QUEUE_SIZE];
18 
19 int
20 bfs()
21 {
22     int i, next_x, next_y, cur, head, tail;
23     struct Node node;
24     head = -1;
25     tail = 0;
26     queue[tail].x = you_x;
27     queue[tail].y = you_y;
28     best[you_x][you_y] = 0;
29     while(head < tail) {
30         ++head;
31         cur = best[queue[head].x][queue[head].y];
32         for(i=0; i<4; i++) {
33             node.x = queue[head].x + dx[i];
34             node.y = queue[head].y + dy[i];
35             if(is_valid(node.x, node.y)) {
36                 /* excellent, only push node which can be updated in 'best' into the queue */
37                 if(map[node.x][node.y] == 'E' || map[node.x][node.y] == 'T') {
38                     if(best[node.x][node.y] > cur+1) {
39                         best[node.x][node.y] = cur+1;
40                         ++tail;
41                         queue[tail] = node;
42                     }
43                 } else if(map[node.x][node.y] == 'B') {
44                     if(best[node.x][node.y] > cur+2) {
45                         best[node.x][node.y] = cur+2;
46                         ++tail;
47                         queue[tail] = node;
48                     }
49                 }
50             }
51         }
52     }
53 }
54 
55 int
56 main(int argc, char **argv)
57 {
58     int i, j;
59     while(scanf("%d %d"&M, &N)!=EOF && M && N) {
60         for(i=0; i<M; i++) {
61             scanf("%s", map[i]);
62             for(j=0; j<N; j++) {
63                 if(map[i][j] == 'Y') {
64                     you_x = i;
65                     you_y = j;
66                 } else if(map[i][j] == 'T') {
67                     target_x = i; 
68                     target_y = j;
69                 }
70                 best[i][j] = INF;
71             }
72         }
73         bfs();
74         printf("%d\n", best[target_x][target_y]==INF ? -1 : best[target_x][target_y]);
75     }
76 }


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

導航

<2010年10月>
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456

統計

常用鏈接

留言簿(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>
            国产日韩欧美一区二区三区四区| 亚洲东热激情| 国产日韩欧美一区二区三区四区| 欧美激情女人20p| 麻豆精品一区二区av白丝在线| 性xx色xx综合久久久xx| 欧美在线视频全部完| 久久激情综合| 久久人人超碰| 欧美成人免费网| 欧美日韩亚洲在线| 国产精品影片在线观看| 国产在线不卡视频| 亚洲破处大片| 一区二区欧美在线| 久久精品欧美日韩| 欧美激情在线| 亚洲香蕉视频| 久久资源在线| 欧美日韩精品综合| 国产欧美午夜| 亚洲精品久久久久久一区二区| 艳妇臀荡乳欲伦亚洲一区| 亚洲欧美成人综合| 免费视频一区| 夜夜爽夜夜爽精品视频| 久久国产精品高清| 欧美日韩中文字幕日韩欧美| 国产欧美日韩激情| 亚洲三级电影全部在线观看高清| 在线天堂一区av电影| 久久久久国产精品人| 亚洲高清久久网| 亚洲自拍偷拍一区| 欧美另类人妖| 久久精品国产69国产精品亚洲| 久久久精品国产99久久精品芒果| 狠狠入ady亚洲精品经典电影| 国产精品yjizz| 国产午夜精品理论片a级大结局| 国产一区久久| 亚洲六月丁香色婷婷综合久久| 午夜在线观看免费一区| 亚洲福利一区| 久久精品成人欧美大片古装| 久久综合九九| 欧美激情aaaa| 亚洲大片av| 亚洲午夜久久久久久久久电影网| 久久久久九九九| 国产精品私人影院| 一级成人国产| 亚洲国产高清aⅴ视频| 久久久精品免费视频| 国产精品一区二区黑丝| 一区二区三区久久网| 欧美激情第4页| 久久久久久免费| 国产手机视频一区二区| 欧美伊人久久久久久久久影院| 日韩视频在线永久播放| 欧美精品久久久久久久久老牛影院| 伊人久久久大香线蕉综合直播| 欧美在线观看www| 亚洲制服丝袜在线| 国产精品久久久久一区| 亚洲午夜极品| 亚洲视频观看| 国产精品剧情在线亚洲| 亚洲欧美另类中文字幕| 这里是久久伊人| 国产精品老牛| 久久aⅴ国产欧美74aaa| 欧美一区二视频在线免费观看| 国产欧美一区二区白浆黑人| 欧美一区二区三区免费大片| 亚洲一区免费| 国产日韩精品视频一区二区三区| 性做久久久久久久久| 欧美资源在线| 精品二区久久| 欧美国产综合| 欧美日韩国产不卡| 亚洲欧美日韩天堂一区二区| 欧美一区二区视频在线观看| 激情六月婷婷综合| 欧美激情一区二区三区蜜桃视频 | 欧美一区二区在线免费观看| 国产一区二区三区的电影 | 在线日韩一区二区| 亚洲经典一区| 欧美日韩亚洲精品内裤| 亚洲欧美中文另类| 久久精品国产一区二区三区| 亚洲精品国产精品国自产在线| 亚洲伦理在线观看| 国产亚洲成人一区| 欧美国产免费| 国产精品www| 另类av一区二区| 欧美日韩精品一二三区| 欧美在线观看视频一区二区三区| 久久国产福利| 在线一区亚洲| 久久影视三级福利片| 一本色道**综合亚洲精品蜜桃冫| 午夜久久tv| 夜色激情一区二区| 久久精品国产第一区二区三区最新章节| 国产在线不卡精品| 日韩视频精品| 亚洲高清毛片| 亚洲欧美日韩精品一区二区| 亚洲精品日本| 久久精品视频播放| 亚洲一区二区综合| 免费中文字幕日韩欧美| 午夜精品一区二区三区在线视| 美女精品在线| 久久av一区二区三区| 欧美日韩国产不卡在线看| 美女图片一区二区| 国产尤物精品| 亚洲一区二区视频在线| 日韩视频在线一区二区| 久久久久久久久综合| 香蕉久久久久久久av网站| 欧美日韩国产专区| 亚洲国产成人91精品| 黑人巨大精品欧美黑白配亚洲 | 欧美系列电影免费观看| 欧美成人小视频| 国产真实精品久久二三区 | 久久精品国产清自在天天线| 亚洲专区一区二区三区| 欧美精品日韩三级| 欧美成人乱码一区二区三区| 国产伦精品一区二区三| 亚洲午夜性刺激影院| 亚洲一区二区欧美日韩| 欧美日韩在线高清| 亚洲精品视频在线观看免费| 亚洲精品一区久久久久久| 麻豆久久久9性大片| 欧美a级理论片| 亚洲国产精品va| 久久一区中文字幕| 免费中文日韩| 亚洲狠狠丁香婷婷综合久久久| 久久久夜夜夜| 欧美成人精品一区二区| 亚洲高清在线观看一区| 欧美成人视屏| 日韩一本二本av| 亚洲欧美日韩人成在线播放| 国产精品久久久久久久app| 亚洲视频精选| 久久久www成人免费无遮挡大片| 国产精品自拍视频| 久久9热精品视频| 欧美凹凸一区二区三区视频| 亚洲区第一页| 欧美日韩三级电影在线| 亚洲欧美日韩在线不卡| 久久偷窥视频| 亚洲精品资源美女情侣酒店| 欧美深夜影院| 欧美在线观看视频一区二区三区| 久久综合婷婷| 亚洲午夜免费福利视频| 国产亚洲精品bt天堂精选| 久久久av网站| 亚洲毛片视频| 久久精视频免费在线久久完整在线看| 韩日精品视频| 欧美日韩免费一区二区三区| 西西人体一区二区| 亚洲国产精品美女| 欧美一区二区啪啪| 最新国产拍偷乱拍精品| 欧美日韩三级一区二区| 久久精品视频在线播放| 亚洲精品久久久久久一区二区| 午夜精品视频一区| 亚洲黄页一区| 国产精品伊人日日| 欧美顶级大胆免费视频| 亚洲欧美不卡| 亚洲欧洲精品一区二区精品久久久| 亚洲欧美中文日韩在线| 亚洲欧洲日韩综合二区| 国产一区二区三区在线观看免费视频 | 欧美日韩成人网| 久久国产日本精品| 日韩一级免费| 免费观看成人鲁鲁鲁鲁鲁视频| 亚洲视频自拍偷拍| 亚洲精品视频在线观看网站| 好吊成人免视频| 国产日韩精品一区二区三区在线 |