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

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>
            久久久久久久综合狠狠综合| 午夜欧美精品| 嫩草影视亚洲| 久久爱www久久做| 在线精品国产欧美| 欧美成人免费全部| 欧美精品免费在线| 日韩午夜电影av| 一级成人国产| 国产日产亚洲精品| 欧美刺激午夜性久久久久久久| 噜噜噜躁狠狠躁狠狠精品视频| 亚洲电影自拍| 亚洲免费久久| 国产一区二区激情| 欧美成人乱码一区二区三区| 欧美精品一区二区三区在线看午夜| 中文高清一区| 久久精品国产69国产精品亚洲 | 欧美在线国产| 激情欧美国产欧美| 亚洲人成7777| 国产精品福利在线观看| 久久成人18免费网站| 蜜桃av一区二区| 中文精品一区二区三区 | 亚洲激情网站免费观看| 欧美日韩国产黄| 欧美一级电影久久| 免费不卡在线观看| 小辣椒精品导航| 美女久久一区| 欧美亚洲视频| 欧美精品综合| 麻豆成人在线播放| 欧美揉bbbbb揉bbbbb| 久久亚裔精品欧美| 国产精品国产三级国产aⅴ9色| 久久久久欧美精品| 国产精品久久999| 亚洲黑丝一区二区| 精品999日本| 亚洲一区国产精品| 一本久久综合| 毛片一区二区| 久久免费高清| 国产精品一区二区三区久久| 亚洲国产精品久久久久| 伊人成人在线| 久久成人18免费网站| 亚洲伊人伊色伊影伊综合网| 欧美v亚洲v综合ⅴ国产v| 久久久亚洲精品一区二区三区| 欧美视频在线播放| 亚洲精品在线观看视频| 亚洲国产日韩欧美一区二区三区| 欧美影院视频| 久久国产精品高清| 国产欧美日韩一区| 亚洲欧美日韩中文播放| 亚洲综合二区| 国产精品麻豆va在线播放| 亚洲三级视频| 一区二区三区欧美| 欧美黄色视屏| 亚洲美洲欧洲综合国产一区| 日韩一级大片| 欧美日韩一区二区三区在线视频 | 亚洲人成艺术| 99国产精品视频免费观看| 欧美阿v一级看视频| 欧美多人爱爱视频网站| 亚洲日韩视频| 欧美日本韩国| 亚洲社区在线观看| 午夜久久影院| 国产一区二区成人| 久久久久久久久岛国免费| 久久一二三国产| 亚洲国产欧美一区| 欧美日本亚洲| 亚洲少妇自拍| 久久久久免费观看| 亚洲黄色av| 欧美体内she精视频| 亚洲婷婷免费| 久久亚洲不卡| 一本色道久久加勒比精品| 欧美日韩亚洲91| 午夜精品视频在线| 欧美成人按摩| 亚洲一区二区三区四区五区午夜| 国产精品免费观看视频| 久久久av水蜜桃| 亚洲国产精品国自产拍av秋霞| 一区二区免费在线视频| 国产免费成人在线视频| 麻豆乱码国产一区二区三区| 日韩亚洲欧美精品| 久久久久久午夜| 中文欧美字幕免费| 国内伊人久久久久久网站视频| 免费观看亚洲视频大全| 亚洲视频一区在线| 欧美成人午夜视频| 亚洲欧美中文日韩在线| 亚洲激情成人| 国产亚洲高清视频| 欧美日本在线一区| 久久久久国色av免费观看性色| 亚洲免费av网站| 欧美xart系列高清| 羞羞答答国产精品www一本| 最新亚洲一区| 黄色成人在线网址| 国产精品另类一区| 欧美日韩国产欧| 久久久国产一区二区| 亚洲一区亚洲二区| 亚洲老板91色精品久久| 欧美高清在线一区| 看片网站欧美日韩| 久久成人免费电影| 亚洲欧美日韩电影| 夜夜爽99久久国产综合精品女不卡| 国产一区二区三区在线观看免费视频 | 欧美大片一区| 欧美制服丝袜| 亚洲女同在线| 一本一本久久a久久精品综合麻豆| 欧美xart系列高清| 快播亚洲色图| 久久人人精品| 久久久久看片| 久久久精品一区二区三区| 亚洲欧美另类在线观看| 这里只有精品视频在线| 99re国产精品| 亚洲精品影视| 亚洲美女精品久久| 亚洲精品女av网站| 亚洲精品一区在线观看香蕉| 亚洲人被黑人高潮完整版| 亚洲激情国产| 亚洲精品国产拍免费91在线| 亚洲第一色在线| 亚洲大片免费看| 亚洲国产精品女人久久久| 亚洲成人影音| 亚洲国产欧美不卡在线观看| 亚洲韩国日本中文字幕| 日韩一区二区久久| 一本久久综合亚洲鲁鲁五月天| 亚洲精品网址在线观看| 一区二区国产日产| 亚洲欧美一区二区激情| 午夜精品一区二区三区在线| 午夜久久资源| 久久久久久欧美| 亚洲成人在线视频网站| 国产欧美韩国高清| 国产主播一区| 亚洲国产精品t66y| 99热免费精品| 亚洲女爱视频在线| 久久久久久久久久久成人| 蜜臀久久久99精品久久久久久| 亚洲成人在线视频播放 | 欧美不卡高清| 欧美视频一二三区| 国产欧美日韩不卡免费| 加勒比av一区二区| 日韩天堂在线观看| 性欧美在线看片a免费观看| 久久精品人人爽| 亚洲电影免费观看高清| 日韩亚洲精品视频| 久久精彩视频| 欧美日韩一区二区免费在线观看| 国产精品久久久久久久app| 国产一区二区三区久久悠悠色av| 亚洲国产精品尤物yw在线观看| 在线亚洲欧美| 巨乳诱惑日韩免费av| 99精品99| 久久综合精品国产一区二区三区| 欧美日韩另类丝袜其他| 国产在线拍揄自揄视频不卡99| 亚洲三级影院| 久久精品日产第一区二区三区 | 欧美一区二区黄| 裸体一区二区三区| 亚洲一区二区三区高清不卡| 久久久综合视频| 国产精品日韩一区| 亚洲精品免费一二三区| 久久久久国产精品午夜一区| 亚洲精品日韩在线观看| 久久在线观看视频| 国产亚洲激情在线|