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

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

題目
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
 
數(shù)據(jù):
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 生活要低調(diào) 閱讀(1259) 評論(0)  編輯 收藏 引用

只有注冊用戶登錄后才能發(fā)表評論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


<2025年12月>
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910

常用鏈接

留言簿(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>
            欧美ed2k| 午夜精品福利电影| 久久精品一区蜜桃臀影院| 亚洲激情成人在线| 国产午夜精品久久久久久免费视 | 蜜桃视频一区| 亚洲一区日韩在线| 亚洲国产精品尤物yw在线观看| 中文国产一区| 亚洲精品中文字幕在线| 韩国在线一区| 国产精品日韩在线观看| 欧美二区不卡| 久久久亚洲国产美女国产盗摄| 亚洲欧美日韩天堂| 一区二区日韩| 亚洲狼人综合| 亚洲第一免费播放区| 久久精品亚洲一区| 亚洲欧美视频| 亚洲欧美在线aaa| 日韩一区二区久久| 亚洲麻豆av| 亚洲激情电影中文字幕| 在线精品一区| 在线观看91精品国产麻豆| 国产午夜精品一区二区三区欧美 | 欧美精品激情在线| 蜜臀av在线播放一区二区三区 | 国产精品一区二区男女羞羞无遮挡 | 亚洲国产成人精品女人久久久| 久久中文欧美| 蜜桃精品一区二区三区| 久久一区二区三区四区五区| 久久久久一区| 老牛影视一区二区三区| 久久在线免费观看视频| 久久亚洲精品一区| 免费亚洲婷婷| 欧美大片一区二区三区| 欧美激情按摩在线| 亚洲高清一区二区三区| 亚洲精品国产精品乱码不99| 亚洲精品视频在线播放| 99精品福利视频| 夜夜嗨av一区二区三区四季av | 国内精品久久久久影院 日本资源| 国产日韩在线一区二区三区| 国内一区二区三区| 韩日在线一区| 亚洲欧洲在线看| av不卡在线看| 亚欧美中日韩视频| 久久九九热re6这里有精品| 麻豆国产va免费精品高清在线| 男女视频一区二区| 亚洲精品一区在线| 亚洲午夜视频在线| 久久av一区二区三区| 老司机午夜精品| 欧美日韩一区在线视频| 国产免费成人| 91久久中文字幕| 亚洲一区中文| 六十路精品视频| 亚洲毛片av| 性欧美xxxx视频在线观看| 久久这里只有精品视频首页| 欧美激情一区二区三区四区| 国产精品久久一区二区三区| 一色屋精品视频在线观看网站| 亚洲精品一区二区三区不| 亚洲欧美激情在线视频| 裸体一区二区三区| 亚洲毛片在线观看| 欧美在线视频全部完| 美日韩精品免费观看视频| 欧美日韩一区二区免费视频| 国产婷婷一区二区| 亚洲另类自拍| 久久久久国产精品一区三寸| 最新中文字幕一区二区三区| 亚洲在线视频网站| 欧美.日韩.国产.一区.二区| 国产精品久久久久久久9999| 亚洲国产毛片完整版| 欧美一区二区三区在线| 亚洲国产欧美在线人成| 亚洲综合不卡| 欧美黄色免费网站| 好看的日韩视频| 亚洲制服少妇| 亚洲韩国一区二区三区| 欧美亚洲日本网站| 欧美视频一区在线观看| 亚洲二区在线视频| 欧美在线一级视频| 亚洲精品乱码久久久久久久久| 久久不射2019中文字幕| 欧美午夜在线| 亚洲精品一区在线观看| 久久综合伊人77777蜜臀| 一区二区三区精品视频在线观看| 免费久久精品视频| 国产一区av在线| 亚洲欧美在线aaa| 亚洲欧洲另类国产综合| 亚久久调教视频| 日韩视频在线观看国产| 免费成人黄色| 激情综合五月天| 欧美一区二区三区在线视频 | 麻豆91精品| 国内精品视频666| 欧美一区二区三区男人的天堂| 亚洲精品乱码久久久久久蜜桃91 | 亚洲一区美女视频在线观看免费| 欧美国产综合视频| 久久亚洲精品网站| **性色生活片久久毛片| 久久gogo国模裸体人体| 亚洲一区二区精品视频| 国产精品av久久久久久麻豆网| 99视频+国产日韩欧美| 亚洲国产导航| 欧美精品免费看| 亚洲精品资源美女情侣酒店| 亚洲国产精品第一区二区三区| 久久综合久久综合这里只有精品| 狠狠色噜噜狠狠狠狠色吗综合| 久久蜜臀精品av| 久久国产日本精品| 国外视频精品毛片| 久久亚洲欧洲| 久热精品在线视频| 91久久视频| 亚洲乱码国产乱码精品精天堂| 欧美精品国产精品| 亚洲无亚洲人成网站77777 | 亚洲精品国产品国语在线app| 欧美成人精品在线| 一本久久综合| 一区二区三区免费在线观看| 国产精品乱码| 久久精品盗摄| 久久综合婷婷| 亚洲精品一区二区三| 亚洲精品视频在线播放| 欧美午夜视频网站| 久久国产手机看片| 久久国产精品一区二区三区四区| 亚洲承认在线| 亚洲欧洲一区二区三区久久| 欧美特黄一级| 久久久精品国产一区二区三区 | 亚洲欧美在线一区| 黄色成人91| 最新亚洲电影| 国产精品一区二区在线| 六十路精品视频| 欧美另类女人| 欧美在线免费看| 噜噜噜久久亚洲精品国产品小说| 一区二区电影免费在线观看| 亚洲免费中文| 亚洲国语精品自产拍在线观看| 亚洲精品偷拍| 国产一区二区三区无遮挡| 亚洲成人在线视频播放 | 欧美一区二区久久久| 久久精品视频在线看| 亚洲日韩第九十九页| 亚洲素人一区二区| 精品动漫一区| 国产精品99久久久久久人| 国产亚洲aⅴaaaaaa毛片| 亚洲第一在线视频| 国产精品影音先锋| 欧美大片91| 国产欧美日韩在线观看| 欧美激情一区二区三区在线视频观看| 欧美丝袜一区二区| 欧美成在线观看| 国产精品美女久久久久久2018| 欧美mv日韩mv亚洲| 国产精品久久婷婷六月丁香| 欧美成在线观看| 国产视频亚洲| 99伊人成综合| 亚洲国产欧美一区二区三区同亚洲 | 欧美大片免费久久精品三p| 欧美在线观看网站| 免费试看一区| 久久久精品国产免大香伊| 欧美日韩免费观看一区| 欧美不卡一卡二卡免费版| 国产精品永久免费在线| 亚洲精品欧美在线| 亚洲高清123| 欧美一级视频精品观看|