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

深度優先搜索加回溯。之前用四叉樹的記錄遍歷迷宮的所有路徑,結果內存超限制了,請教學長之后才知道有種算法設計方法叫“回溯”,即在沿一條路深度遍歷后再把走過的路標記回來,這樣就能避免影響其它路徑的遍歷。
另外關于遞歸要說一點,當遞歸中涉及到對全局變量(比如一個全局的數組)的修改時,之前我一直存在的疑問是:如果遞歸式樹狀調用結構,那么每一時刻這個全局的數組在被誰使用呢?如果每層遞歸都能同時使用該數組,那數據不就亂了嗎?原來雖然遞歸的調用可以是樹狀的,但是每一個時刻遞歸都是沿著遞歸樹中的一條路在走,一條路走不通了才會退一步,換個子樹接著走。這些都是在了解回溯之后才想通的。
#include<stdio.h>
#include
<stdlib.h>
#include
<string.h>
typedef 
struct 
{
    
char x;
    
char y;
}
Node;

int fd;//have find given length 
int T;
int len;
char mp[8][8];//map
void f(int x, int y)
{
    
if(!fd)
    
{
        
if(mp[x - 1][y] == 'D' && len + 1 == T)fd = 1;
        
else if(mp[x - 1][y] == '.')//go up
        {
            len 
++;
            mp[x 
- 1][y] = 'X';
            f(x 
- 1, y);
            len 
--;
            mp[x 
- 1][y] = '.';
        }

        
if(mp[x][y + 1== 'D' && len + 1 == T)fd = 1;
        
else if(mp[x][y + 1== '.')//go right
        {
            len 
++;
            mp[x][y 
+ 1= 'X';
            f(x, y 
+ 1);
            len 
--;
            mp[x][y 
+ 1= '.';
        }

        
if(mp[x + 1][y] == 'D' && len + 1 == T)fd = 1;
        
else if(mp[x + 1][y] == '.')//go down
        {
            len 
++;
            mp[x 
+ 1][y] = 'X';
            f(x 
+ 1, y);
            len 
--;
            mp[x 
+ 1][y] = '.';
        }

        
if(mp[x][y - 1== 'D' && len + 1 == T)fd = 1;
        
else if(mp[x][y - 1== '.')//go left
        {
            len 
++;
            mp[x][y 
- 1= 'X';
            f(x, y 
- 1);
            len 
--;
            mp[x][y 
- 1= '.';
        }

    }

}

int main()
{
    
int N, M;
    
int i, j;
    
int find;
    Node s;
    scanf(
"%d%d%d"& N, & M, & T);           
    
while(N + M + T != 0)
    
{
        
for(i = 1; i <= N; i++)//read map
            scanf("%s",&mp[i][1]);
        
for(i = 1; i <= N; i++)
            
for(j = 1; j <= M; j++)
                
if(mp[i][j] == 'X')
            
        
for(i = 0; i <= N + 1; i++)//init map
            mp[i][0= mp[i][M + 1= 'X';    
        
for(i = 1; i <= M; i++)
            mp[
0][i] = mp[N + 1][i] = 'X';
            
        find 
= 0;
        
for(i = 1; i <= N && find == 0; i++)//search start point
            for(j = 1; j<= M && find == 0; j++)
                
if(mp[i][j] == 'S')
                
{
                    s.x 
= i;
                    s.y 
= j;
                    find 
= 1;
                }
 
                
        fd 
= 0;
        len 
= 0;
        f(s.x, s.y);
        
if(fd == 1)
            puts(
"YES");
        
else
            puts(
"NO");
         
        scanf(
"%d%d%d"& N, & M, & T);
    }

}


posted on 2012-02-28 17:14 小鼠標 閱讀(236) 評論(0)  編輯 收藏 引用
<2012年2月>
2930311234
567891011
12131415161718
19202122232425
26272829123
45678910

常用鏈接

隨筆分類(111)

隨筆檔案(127)

friends

最新評論

  • 1.?re: 線段樹
  • 是這個樣子的,所以在OJ有時候“卡住”了也不要太灰心,沒準真的不是自己的原因呢。
    加油,祝你好運啦!
  • --小鼠標
  • 2.?re: 線段樹
  • 對于編程競賽來說,Java所需時間一般為C/C++的兩倍。合理的競賽給Java的時間限制是給C/C++的兩倍。
  • --傷心的筆
  • 3.?re: poj1273--網絡流
  • 過來看看你。
  • --achiberx
  • 4.?re: (轉)ubuntu11.10無法啟動無線網絡的解決方法
  • 膜拜大神。。查了一個下午資料終于在這里解決了問題。。神牛說的區域賽難道是ACM區域賽。。?
  • --Hang
  • 5.?re: 快速排序、線性時間選擇
  • 博主,謝謝你的文章。你的方法可以很好的處理分區基準在數組中重復的情況,書上的方法遇到這種輸入會堆棧溢出。書上給出了解釋但給的方法貌似不簡潔。
  • --lsxqw2004

閱讀排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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亚洲视频| 亚洲片国产一区一级在线观看| 久久久久免费| 亚洲欧美成人| 国产精品女人网站| 亚洲欧美国产日韩中文字幕| 日韩视频免费大全中文字幕| 欧美久久久久免费| 亚洲午夜伦理| 在线视频日韩| 国产精品视频区| 午夜日韩电影| 午夜性色一区二区三区免费视频| 国产欧美日本一区视频| 久久人人爽人人爽爽久久| 久久国产精品久久久久久电车| 国模大胆一区二区三区| 欧美91视频| 欧美日韩成人网| 亚洲欧美制服另类日韩| 欧美在现视频| 亚洲黄色影片| 在线视频欧美日韩| 国产在线观看91精品一区| 美女精品国产| 欧美日本一道本| 欧美一区视频| 免费国产一区二区| 中文日韩在线视频| 亚洲第一在线视频| 国产精品xxxav免费视频| 欧美一区免费| 欧美高潮视频| 欧美在线亚洲综合一区| 嫩草成人www欧美| 亚洲欧美视频在线观看| 久久久精品tv| 99在线|亚洲一区二区| 亚洲视频成人| 在线日韩一区二区| 99成人精品| 一区二区三区中文在线观看| 亚洲精品一区二区三区不| 国产一区二区三区高清| 91久久久久久久久久久久久| 国产欧美一区二区在线观看| 亚洲国产高清视频| 国产视频久久| 日韩视频一区二区三区| 国产一区二区看久久| 亚洲曰本av电影| 久热成人在线视频| 欧美中文字幕| 欧美日韩在线播放三区| 欧美xart系列在线观看| 国产精品老牛| 亚洲成在线观看| 国产亚洲一级| 亚洲一区二区在线免费观看| 99ri日韩精品视频| 蜜臀av性久久久久蜜臀aⅴ四虎 | 亚洲国产欧美在线人成| 国产在线成人| 羞羞答答国产精品www一本| 亚洲免费在线电影| 欧美日韩另类国产亚洲欧美一级| 亚洲国产va精品久久久不卡综合| 精品不卡视频| 久久精选视频| 久久久噜噜噜久久久| 国产欧美日韩免费| 亚洲欧美国产精品va在线观看| 亚洲欧美国产视频| 国产精品久久久久久一区二区三区 | 国产精品亚洲一区二区三区在线| 亚洲欧洲视频| 最新成人在线| 久久精品九九| 狼人天天伊人久久| 国产欧美精品久久| 亚洲自拍电影| 亚洲一区二区久久| 欧美精品在线观看播放| 日韩午夜黄色| 欧美日韩在线不卡一区| 91久久国产综合久久91精品网站| 激情小说另类小说亚洲欧美 | 国产精品男人爽免费视频1| 亚洲精品黄色| 国产又爽又黄的激情精品视频 | 亚洲一区二区三区四区中文 | 欧美α欧美αv大片| 性色av一区二区三区在线观看| 99综合在线| 欧美日精品一区视频| 亚洲国产精品黑人久久久 | 性欧美暴力猛交69hd| 欧美日韩在线三区| 亚洲综合色丁香婷婷六月图片| 亚洲一区精品电影| 国产精品免费小视频| 新片速递亚洲合集欧美合集 | 亚洲制服丝袜在线| 久久一综合视频| 免费久久99精品国产自| 国语自产在线不卡| 久久精品亚洲一区二区| 免费一级欧美片在线观看| 国产精品综合久久久| 性欧美video另类hd性玩具| 一区二区三欧美| 欧美特黄一级大片| 亚洲香蕉视频| 久久av一区二区三区漫画| 国产一区二区三区黄| 久久久99久久精品女同性 | 榴莲视频成人在线观看| 欧美激情一区二区三区不卡| 亚洲片区在线| 欧美日韩综合网| 午夜久久福利| 亚洲精品乱码久久久久| 亚洲视频1区2区| 国产美女在线精品免费观看| 久久精品91| 亚洲片在线资源| 日韩系列在线| 狠狠色丁香久久婷婷综合_中| 美女久久一区| 一区二区三区.www| 久久精品国产清自在天天线| 亚洲高清资源| 欧美va亚洲va国产综合| 午夜精品美女久久久久av福利| 美日韩精品免费观看视频| 9久草视频在线视频精品| 国产精品美女主播| 免费欧美电影| 亚洲精品日日夜夜| 欧美高清在线一区二区| 亚洲欧美韩国| 亚洲欧洲一二三| 国产美女扒开尿口久久久| 蜜桃久久精品一区二区| 久久先锋资源| 亚洲欧美视频在线观看| 久久成人精品| 一本色道婷婷久久欧美| 国产主播一区二区三区四区| 欧美日韩国产91| 久久久av水蜜桃| 亚洲福利视频网| 免费亚洲电影| 欧美专区18| 亚洲欧美日韩在线观看a三区 | 尤物在线精品| 狠狠色狠狠色综合日日小说| 欧美在线观看你懂的| 久久夜色精品国产亚洲aⅴ| 一区二区三区四区精品| 在线观看视频亚洲| 在线精品观看| 欧美一区二区三区日韩| 亚洲剧情一区二区| 99re6热只有精品免费观看| 欧美高清你懂得| 亚洲电影毛片| 欧美国产日本韩| 亚洲第一在线综合网站| 午夜一区不卡| 久久狠狠亚洲综合| 久久久伊人欧美| 久久久久久久性| 免费观看成人鲁鲁鲁鲁鲁视频| 欧美在线|欧美| 狂野欧美激情性xxxx| 久久精品在线观看| 久久先锋资源| 久久久精品日韩欧美| 欧美成人精品一区二区| 欧美大色视频| 欧美69视频| 亚洲福利小视频| 在线一区二区三区四区五区| 一区二区三区高清| 中国成人亚色综合网站| 99日韩精品| 亚洲黄色毛片|