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

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 生活要低調 閱讀(1251) 評論(0)  編輯 收藏 引用
<2025年9月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

常用鏈接

留言簿(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>
            一区二区三区四区五区视频 | 亚洲综合日韩中文字幕v在线| 欧美a一区二区| 亚洲精品一区二| 亚洲精品日韩欧美| 欧美色道久久88综合亚洲精品| 亚洲一区二区黄色| 亚洲欧美日韩久久精品| 在线观看免费视频综合| 欧美激情网友自拍| 国产精品美女久久久久av超清| 欧美影视一区| 毛片av中文字幕一区二区| 一区二区三区国产精品| 亚洲深夜av| 一区视频在线| 亚洲精品一区二区三区樱花| 国产精品日韩欧美综合| 另类尿喷潮videofree| 欧美日韩福利在线观看| 欧美专区福利在线| 欧美激情一区二区三区四区| 久久国产精品亚洲va麻豆| 美日韩精品视频免费看| 欧美一级淫片aaaaaaa视频| 久久久亚洲国产美女国产盗摄| 99天天综合性| 久久久久久九九九九| 中文国产亚洲喷潮| 狂野欧美一区| 午夜在线视频一区二区区别| 快播亚洲色图| 久久久久久久97| 欧美日韩一级片在线观看| 久久久夜夜夜| 国产精品激情av在线播放| 欧美激情一级片一区二区| 国产精品视频免费| 亚洲欧洲一区二区天堂久久 | 欧美精品福利在线| 乱码第一页成人| 国产精品午夜在线观看| 亚洲乱码国产乱码精品精可以看| 好吊日精品视频| 中文国产一区| 亚洲美女视频在线免费观看| 久久噜噜亚洲综合| 久久欧美中文字幕| 国产婷婷色综合av蜜臀av| 日韩天堂在线观看| 亚洲精品三级| 欧美电影电视剧在线观看| 久久一区二区三区超碰国产精品 | 午夜精品久久久久久久久久久久| av成人手机在线| 欧美电影在线观看完整版| 蜜臀av国产精品久久久久| 国内一区二区三区| 欧美亚洲三区| 久久久久久9| 国产亚洲精品一区二555| 亚洲欧美影音先锋| 久久精品综合| 狠狠色狠狠色综合系列| 久久高清国产| 女女同性女同一区二区三区91| 黑人操亚洲美女惩罚| 久久精品91| 欧美粗暴jizz性欧美20| 亚洲国产精品激情在线观看| 美女爽到呻吟久久久久| 91久久精品日日躁夜夜躁国产| 91久久精品美女高潮| 欧美激情按摩| 中文日韩电影网站| 欧美怡红院视频一区二区三区| 国产一区二区电影在线观看| 欧美一区亚洲一区| 欧美国产日韩一区二区在线观看 | 亚洲午夜精品17c| 国产精品久久久久一区二区三区| 亚洲欧美日韩天堂一区二区| 久久久亚洲综合| 亚洲激情视频在线| 国产精品sss| 久久精品成人欧美大片古装| 欧美福利网址| 亚洲一区二区在线播放| 国产亚洲亚洲| 欧美高清视频一区| 亚洲午夜性刺激影院| 久久久亚洲国产天美传媒修理工 | 午夜日韩福利| 一区免费视频| 欧美午夜视频一区二区| 欧美一区二区精品在线| 欧美激情一区二区三区不卡| 亚洲欧美电影院| 亚洲高清毛片| 国产精品一卡二| 免费观看成人www动漫视频| 一区二区三区高清| 美日韩精品免费观看视频| 99这里只有精品| 黄色成人片子| 国产精品伦一区| 欧美高清视频www夜色资源网| 亚洲欧美日韩久久精品| 亚洲欧洲日产国产综合网| 久久久999国产| 亚洲午夜精品国产| 亚洲欧洲一区二区三区久久| 国产色综合久久| 欧美日韩另类视频| 久久亚洲国产精品一区二区| 制服丝袜激情欧洲亚洲| 亚洲国产精品电影在线观看| 久久免费视频这里只有精品| 一区二区三欧美| 亚洲国产片色| 激情av一区二区| 国产乱码精品一区二区三区五月婷 | 久久精品欧美| 午夜免费久久久久| 亚洲视频精品| 一本久道久久久| 亚洲精品综合| 亚洲国产一二三| 在线 亚洲欧美在线综合一区| 国产欧美一区二区白浆黑人| 欧美日韩亚洲一区二区三区在线| 免费亚洲电影在线| 久久天天躁夜夜躁狠狠躁2022| 亚洲一区免费在线观看| 亚洲午夜成aⅴ人片| av成人老司机| 日韩一级片网址| 99精品免费视频| 日韩一级欧洲| 亚洲私人影院在线观看| 一区二区三区视频在线观看 | 欧美永久精品| 久久国产99| 久久精品伊人| 麻豆精品一区二区综合av| 久久亚洲色图| 欧美激情在线狂野欧美精品| 欧美成人蜜桃| 亚洲国产高潮在线观看| 亚洲福利在线观看| 亚洲欧洲日韩在线| av成人毛片| 午夜综合激情| 久久久国产91| 欧美激情一区二区三区在线| 欧美日韩国语| 国产精品推荐精品| 国产老女人精品毛片久久| 国际精品欧美精品| 亚洲人成人99网站| 亚洲午夜成aⅴ人片| 欧美一二三区精品| 裸体丰满少妇做受久久99精品| 欧美国产精品久久| 一区二区三区四区精品| 欧美亚洲一级片| 老色批av在线精品| 欧美日韩理论| 国内自拍视频一区二区三区| 亚洲电影免费在线观看| 亚洲婷婷综合色高清在线| 久久精品中文| 亚洲毛片在线看| 午夜一区在线| 欧美好骚综合网| 国产欧美一区二区三区国产幕精品 | 国产精品成人免费视频| 黑人巨大精品欧美一区二区小视频 | 蜜桃av噜噜一区| 国产精品美女久久久免费| 在线精品国产成人综合| 亚洲特级毛片| 欧美成人一二三| 在线视频欧美一区| 免费黄网站欧美| 国产午夜精品一区二区三区欧美 | 影音先锋国产精品| 亚洲欧美精品一区| 免费一区视频| 性高湖久久久久久久久| 欧美日韩国产小视频在线观看| 黄色亚洲免费| 欧美在线视频一区二区| 91久久久久久| 久久综合影视| 国产一区二区日韩| 亚洲欧美一区二区视频| 亚洲精品欧美日韩| 老**午夜毛片一区二区三区| 国产日韩欧美一区二区|