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

posts - 3,  comments - 1,  trackbacks - 0
這題沒把我弄瘋了.一個小時寫完,改了2個小時...題目給的數據太弱了,需要自己寫一些數據來驗證...在這里給大家提供些數據

題目
Maze
Time Limit: 2000MS Memory Limit: 65536K
Total Submissions: 1205 Accepted: 399

Description

Acm, a treasure-explorer, is exploring again. This time he is in a special maze, in which there are some doors (at most 5 doors, represented by 'A', 'B', 'C', 'D', 'E' respectively). In order to find the treasure, Acm may need to open doors. However, to open a door he needs to find all the door's keys (at least one) in the maze first. For example, if there are 3 keys of Door A, to open the door he should find all the 3 keys first (that's three 'a's which denote the keys of 'A' in the maze). Now make a program to tell Acm whether he can find the treasure or not. Notice that Acm can only go up, down, left and right in the maze.

Input

The input consists of multiple test cases. The first line of each test case contains two integers M and N (1 < N, M < 20), which denote the size of the maze. The next M lines give the maze layout, with each line containing N characters. A character is one of the following: 'X' (a block of wall, which the explorer cannot enter), '.' (an empty block), 'S' (the start point of Acm), 'G' (the position of treasure), 'A', 'B', 'C', 'D', 'E' (the doors), 'a', 'b', 'c', 'd', 'e' (the keys of the doors). The input is terminated with two 0's. This test case should not be processed.

Output

For each test case, in one line output "YES" if Acm can find the treasure, or "NO" otherwise.

Sample Input

4 4
S.X.
a.X.
..XG
....
3 4
S.Xa
.aXB
b.AG
0 0

Sample Output

YES
NO
 
數據:
5 5
S....
XXAXa
GX..X
.X...
.....

20 20
S..................a
aXXXXXXXXXXAXXXXXXX.
.X........bb......X.
.XbXXXXXXXXXXXXXX.X.
.X.X.....c......X.X.
aXbX.XXXXXXXXXX.X.X.
.X.X.X........X.X.X.
.X.X.X.XDXXXX.X.X.X.
.X.X.X.X..XXX.X.X.X.
.X.X.X.X.XG.X.X.X.X.
.X.XcX.X.XXEX.CeX.X.
.X.X.X.X.e..X.X.X.X.
.X.X.X.XXXXXX.X.X.X.
.X.X.X........X.X.X.
.X.X.XXXXXXXXXX.X.X.
.X.X..c.........X.X.
.X.XXXXXXXBXXXXXX.X.
.X........b.......X.
.XXXXXXXXXXXXXXXXXX.
.d..e...a........a..
主要思想,先找鑰匙..搜索一遍,得到能找到的鑰匙,然后開門.把能開的門都打開..打開門之后再找鑰匙,然后在開門.
直到找到G..
 
代碼如下:

Source Code

Problem: 2157 User: luoguangyao
Memory: 276K Time: 0MS
Language: C++ Result: Accepted
  • Source Code
      1#include <iostream>
      2
      3using namespace std;
      4
      5int m;
      6int n;
      7char map[22][22];
      8int allkey[6= {0};
      9int key[6= {0};
     10int mark[22][22= {0};
     11int mark2[22][22= {0};
     12int markkey[22][22= {0};
     13int lock = 1;
     14int kk = 0;
     15
     16void FindKey(int x,int y)
     17{
     18    if ((map[x][y] >= 'a'&& map[x][y] <= 'e')
     19            && markkey[x][y] != 1)
     20    {
     21        key[map[x][y] - 'a']++;
     22
     23        markkey[x][y] = 1;
     24    }

     25
     26    mark2[x][y] = 1;
     27
     28    if (mark2[x + 1][y] != 1 && x + 1 < m && map[x + 1][y] != 'X' && map[x + 1][y] != 'A' && map[x + 1][y] != 'B' 
     29        && map[x + 1][y] != 'C' && map[x + 1][y] != 'D' && map[x + 1][y] != 'E')
     30    {
     31        FindKey(x + 1 , y);
     32    }

     33
     34    if (mark2[x - 1][y] != 1 && x - 1 >= 0 && map[x - 1][y] != 'X' && map[x - 1][y] != 'A' && map[x - 1][y] != 'B'
     35        && map[x - 1][y] != 'C' && map[x - 1][y] != 'D' && map[x - 1][y] != 'E')
     36    {
     37        FindKey(x - 1 , y);
     38    }

     39
     40    if (mark2[x][y + 1!= 1 && y + 1 < n && map[x][y + 1!= 'X'  && map[x][y + 1!= 'A' && map[x][y + 1!= 'B'
     41        && map[x][y + 1!= 'C' && map[x][y + 1!= 'D' && map[x][y + 1!= 'E' )
     42    {
     43        FindKey(x , y + 1);
     44    }

     45
     46    if (mark2[x][y - 1!= 1 && y - 1 >= 0 && map[x][y - 1!= 'X'  && map[x][y - 1!= 'A' && map[x][y - 1!= 'B' 
     47        && map[x][y - 1!= 'C' && map[x][y - 1!= 'D' && map[x][y - 1!= 'E')
     48    {
     49        FindKey(x , y - 1);
     50    }

     51}

     52
     53void Findroute(int x,int y)
     54{
     55    if (map[x][y] == 'G')
     56    {
     57        lock = 0;
     58    }

     59
     60    FindKey(x , y);
     61
     62    mark[x][y] = 1;
     63
     64    if (mark[x + 1][y] != 1 && x + 1 < m && map[x + 1][y] != 'X')
     65    {
     66        if (map[x + 1][y] >= 'A' && map[x + 1][y] <= 'E')
     67        {
     68            if (key[map[x + 1][y] - 'A'!= 0 && allkey[map[x + 1][y] - 'A'== key[map[x + 1][y] - 'A'])
     69            {
     70                Findroute(x + 1 , y);
     71            }

     72        }

     73        else
     74        {
     75            Findroute(x + 1 , y);
     76        }

     77    }

     78
     79    if (mark[x - 1][y] != 1 && x - 1 >= 0 && map[x - 1][y] != 'X')
     80    {
     81        if (map[x - 1][y] >= 'A' && map[x - 1][y] <= 'E')
     82        {
     83            if (key[map[x - 1][y] - 'A'!= 0 && key[map[x - 1][y] - 'A'== allkey[map[x - 1][y] - 'A'])
     84            {
     85                Findroute(x - 1 , y);
     86            }

     87        }

     88        else
     89        {
     90            Findroute(x - 1 , y);
     91        }

     92    }

     93
     94    if (mark[x][y - 1!= 1 && y - 1 >= 0 && map[x][y - 1!= 'X')
     95    {
     96        if (map[x][y - 1>= 'A' && map[x][y - 1<= 'E')
     97        {
     98            if (key[map[x][y - 1- 'A'!= 0 && allkey[map[x][y - 1- 'A'== key[map[x][y - 1- 'A'])
     99            {
    100                Findroute(x , y - 1);
    101            }

    102        }

    103        else
    104        {
    105            Findroute(x , y - 1);
    106        }

    107    }

    108
    109    if (mark[x][y + 1!= 1 && y + 1 < n && map[x][y + 1!= 'X')
    110    {
    111        if (map[x][y + 1>= 'A' && map[x][y + 1<= 'E')
    112        {
    113            if (key[map[x][y + 1- 'A'!= 0 && allkey[map[x][y + 1- 'A'== key[map[x][y + 1- 'A'])
    114            {
    115                Findroute(x , y + 1);
    116            }

    117        }

    118        else
    119        {
    120            Findroute(x , y + 1);
    121        }

    122    }

    123
    124}

    125
    126int main()
    127{
    128    int i;
    129    int j;
    130
    131    while (cin >> m >> n)
    132    {
    133        int px = -1;
    134        int py = -1;
    135        int gx = -1;
    136        int gy = -1;
    137
    138        memset(key,0,sizeof(key));
    139        memset(allkey,0,sizeof(allkey));
    140        memset(map,'\0',sizeof(map));
    141        memset(mark,0,sizeof(mark));
    142        memset(mark2,0,sizeof(mark2));
    143        memset(markkey,0,sizeof(markkey));
    144        lock = 1;
    145
    146        if (m == 0 && n == 0)
    147        {
    148            break;
    149        }

    150
    151        for (i = 0; i < m ; ++i)
    152        {
    153            for (j = 0; j < n; ++j)
    154            {
    155                cin >> map[i][j];
    156
    157                if (map[i][j] >= 'a' && map[i][j] <= 'e')
    158                {
    159                    allkey[map[i][j] - 'a']++;
    160                }

    161
    162                if (map[i][j] == 'S')
    163                {
    164                    px = i;
    165                    py = j;
    166                }

    167
    168                if (map[i][j] == 'G')
    169                {
    170                    gx = i;
    171                    gy = j;
    172                }

    173            }

    174        }

    175
    176        if (px == -1 || py == -1 || gx == -1 || gy == -1)
    177        {
    178            cout << "NO" << endl;
    179            continue;
    180        }

    181
    182        Findroute(px,py);
    183
    184        if (lock == 1)
    185        {
    186            cout << "NO" << endl;
    187        }

    188        else
    189        {
    190            cout << "YES" << endl;
    191        }

    192    }

    193
    194    return 0;
    195}

    196
posted on 2009-03-07 15:14 生活要低調 閱讀(1259) 評論(0)  編輯 收藏 引用

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


<2025年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

常用鏈接

留言簿(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>
            久久国产一区| 国产精品国产三级国产普通话蜜臀 | 国产精品欧美风情| 欧美日韩性生活视频| 欧美日韩中文字幕在线| 欧美日韩国产综合视频在线观看| 欧美激情乱人伦| 欧美四级电影网站| 国产日韩欧美在线一区| 国模私拍视频一区| 亚洲日韩欧美视频| 性视频1819p久久| 久久综合伊人77777尤物| 91久久精品一区二区别| 亚洲国产一区二区三区高清| 日韩一级精品| 欧美亚洲综合另类| 老牛国产精品一区的观看方式| 欧美承认网站| 国产日韩久久| 99riav久久精品riav| 久久爱www| 亚洲精品乱码久久久久| 午夜伦理片一区| 欧美国产精品劲爆| 国产精品欧美日韩| 亚洲黄色在线| 久久成人免费电影| 亚洲精选久久| 久久综合色88| 国产一区久久久| 亚洲女人天堂成人av在线| 欧美va亚洲va国产综合| 亚洲一区观看| 欧美精品色综合| 亚洲丶国产丶欧美一区二区三区| 亚洲一区二区黄色| 欧美激情综合| 久久久久综合网| 国产视频一区欧美| 中文亚洲免费| 亚洲精品永久免费精品| 久久综合伊人77777麻豆| 国产欧美精品国产国产专区| 一本一本久久a久久精品牛牛影视| 美女精品自拍一二三四| 翔田千里一区二区| 国产精品乱码久久久久久| 亚洲日本电影| 欧美日韩在线视频首页| 亚洲激情av在线| 欧美一级片久久久久久久| 欧美片在线播放| 亚洲第一页中文字幕| 欧美中文在线字幕| 亚洲精品永久免费精品| 裸体素人女欧美日韩| 国产视频在线观看一区| 亚洲男人影院| 亚洲视频免费在线| 欧美日韩综合视频| 一区二区三区国产| 日韩一级精品| 国产精品美女www爽爽爽| 亚洲性图久久| 亚洲视频一区| 国产网站欧美日韩免费精品在线观看| 99热精品在线观看| 日韩一级网站| 国产精品家教| 久久精品国产亚洲一区二区| 性欧美长视频| 影音先锋亚洲电影| 欧美激情性爽国产精品17p| 老司机午夜精品视频| 91久久国产综合久久| 亚洲激情视频在线播放| 欧美日韩国产综合一区二区| 亚洲网站在线| 亚洲欧洲av一区二区| 一区二区三区自拍| 亚洲精品日日夜夜| 国产日韩精品在线观看| 欧美国产日韩一区| 欧美视频免费看| 久久久国际精品| 欧美成人r级一区二区三区| 一区二区高清视频在线观看| 亚洲永久免费视频| 亚洲高清不卡av| 在线视频欧美日韩精品| 精品电影一区| 一区二区三区欧美成人| 国产一区二区三区高清| 最新国产乱人伦偷精品免费网站| 欧美日韩精品免费在线观看视频| 午夜视频一区在线观看| 久久一日本道色综合久久| 夜夜爽www精品| 欧美一区午夜精品| 99精品欧美一区二区三区| 欧美一区二区三区在线观看| 日韩视频免费在线观看| 欧美一区二区大片| 99这里只有精品| 久久福利视频导航| 亚洲一区一卡| 欧美成人a视频| 久久夜色精品国产欧美乱| 欧美亚洲第一页| 韩国美女久久| 亚洲午夜电影在线观看| 亚洲国内自拍| 欧美一级视频精品观看| 亚洲视频在线视频| 欧美成人精品h版在线观看| 久久精品日产第一区二区| 伊人久久av导航| 亚洲韩国青草视频| 加勒比av一区二区| 亚洲一区二区影院| 在线亚洲国产精品网站| 欧美不卡高清| 开心色5月久久精品| 国产精品一区二区三区乱码| 亚洲伦理在线观看| 亚洲精选在线| 免费看精品久久片| 欧美福利一区二区| 伊人成人在线| 久久久久久久久综合| 久久精品一二三| 国产精品视频成人| 亚洲一区二区成人| 亚洲欧美另类国产| 国产精品成人国产乱一区| 亚洲剧情一区二区| 亚洲午夜av在线| 国产精品xnxxcom| 99精品视频一区二区三区| 一区二区三区欧美在线| 欧美日韩黄色大片| 日韩亚洲视频在线| 亚洲欧美日韩第一区| 国产精品久久久一本精品| 亚洲性xxxx| 久久精品夜夜夜夜久久| 黄色成人在线免费| 巨胸喷奶水www久久久免费动漫| 卡通动漫国产精品| 亚洲精品三级| 欧美日韩在线亚洲一区蜜芽| 中国成人亚色综合网站| 久久大香伊蕉在人线观看热2| 国产欧美一区二区精品忘忧草| 午夜激情亚洲| 欧美暴力喷水在线| 一本色道久久综合亚洲91| 国产精品久久久久9999吃药| 欧美一区亚洲一区| 亚洲国产日韩美| 一区二区欧美在线观看| 国产精品一区二区a| 久久久av毛片精品| 亚洲三级电影在线观看| 亚洲欧美日韩一区二区| 国产自产v一区二区三区c| 欧美h视频在线| 日韩亚洲一区在线播放| 久久久精品视频成人| 亚洲精品乱码久久久久| 国产精品主播| 欧美电影免费观看高清完整版| 99精品久久| 免费在线看成人av| 亚洲在线中文字幕| 在线视频国产日韩| 国产精品第一页第二页第三页| 久久亚洲国产精品一区二区| 日韩一级网站| 免费亚洲电影| 国产在线视频欧美| 欧美日韩黄色大片| 久久人人爽爽爽人久久久| 中文日韩欧美| 亚洲国产美国国产综合一区二区| 亚洲欧美精品伊人久久| 亚洲国产影院| 好吊日精品视频| 国产精品不卡在线| 欧美黄色免费网站| 久久久精品视频成人| 亚洲性视频网址| 亚洲精品久久久久久久久久久久久| 久久精品在线| 欧美有码视频| 亚洲欧美日韩精品久久奇米色影视| 亚洲区第一页| 亚洲国产一区二区在线| 韩日精品在线|