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

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>
            久久不射网站| 欧美视频免费看| 欧美好吊妞视频| 麻豆成人精品| 亚洲高清视频在线观看| 亚洲欧美日韩国产综合| 亚洲一区激情| 欧美一乱一性一交一视频| 久久激情五月激情| 欧美成人精品高清在线播放| 美女久久网站| 亚洲激情午夜| 亚洲一区成人| 久久视频这里只有精品| 牛牛影视久久网| 欧美午夜性色大片在线观看| 国产午夜精品视频免费不卡69堂| 国产亚洲欧美一区二区三区| 亚洲国产精品第一区二区三区| 99re6热只有精品免费观看| 亚洲素人一区二区| 裸体一区二区三区| 99精品热视频| 久久影院午夜片一区| 欧美国产乱视频| 国产亚洲精久久久久久| 亚洲精品视频啊美女在线直播| 午夜一区二区三视频在线观看 | 欧美va亚洲va日韩∨a综合色| 亚洲成色精品| 国产午夜精品在线观看| 在线观看日韩精品| 亚洲国产精品久久精品怡红院| 亚洲国产老妈| 欧美成人午夜| 亚洲欧美三级伦理| 欧美激情综合色综合啪啪| 国产在线拍偷自揄拍精品| 一区二区精品在线| 欧美激情日韩| 久久综合久色欧美综合狠狠| 国产精品少妇自拍| 亚洲午夜免费福利视频| 亚洲电影免费观看高清完整版| 亚洲免费人成在线视频观看| 欧美激情片在线观看| 在线国产精品播放| 久久天天躁狠狠躁夜夜av| 亚洲综合第一页| 国产精品视频免费观看| 亚洲自拍偷拍网址| 亚洲午夜久久久久久尤物 | 久久久美女艺术照精彩视频福利播放| 亚洲国产99| 牛牛影视久久网| 亚洲精品久久久久久久久久久久久| 久久久噜噜噜久久中文字免| 香蕉久久精品日日躁夜夜躁| 国产精品自拍三区| 欧美一区在线看| 欧美亚洲视频一区二区| 国产欧美日韩一区二区三区在线| 亚洲欧美成人在线| 亚洲调教视频在线观看| 国产精品www色诱视频| 亚洲午夜国产一区99re久久 | 久久久99免费视频| 有坂深雪在线一区| 免费av成人在线| 欧美大秀在线观看| 一区二区欧美视频| 亚洲欧美久久| 一区在线播放| 亚洲国产欧美日韩| 欧美日韩国产123| 亚洲欧美日本视频在线观看| 亚洲影院免费| 在线精品观看| 亚洲精品在线视频观看| 国产精品视频网站| 久久一本综合频道| 欧美国产精品一区| 欧美一级在线播放| 玖玖综合伊人| 亚洲一区二区三区四区在线观看 | 久久久久久久久一区二区| 欧美激情一二三区| 另类欧美日韩国产在线| 一区二区在线观看视频| 欧美成人中文字幕| 蜜桃伊人久久| 亚洲图片欧美午夜| 欧美一区91| 亚洲经典视频在线观看| 一本色道久久综合亚洲91| 国产精品视频你懂的| 美女国产一区| 欧美偷拍一区二区| 久久婷婷人人澡人人喊人人爽| 欧美91大片| 久久九九国产| 欧美午夜精品伦理| 欧美高清在线一区二区| 国产精品一二一区| 亚洲日本乱码在线观看| 国产精品三上| 亚洲人成网站影音先锋播放| 国产日韩欧美在线播放不卡| 亚洲国产精品传媒在线观看| 国产日韩1区| 99精品久久免费看蜜臀剧情介绍| 国产一区二区三区四区五区美女| 亚洲精品美女在线观看| ●精品国产综合乱码久久久久| 一本久久a久久精品亚洲| 一区精品久久| 久久国产精品亚洲va麻豆| 亚洲一区二区三区在线| 免费视频一区二区三区在线观看| 午夜精品一区二区三区在线播放 | 一本不卡影院| 久久综合久久综合九色| 久久这里有精品视频| 国产女主播在线一区二区| 亚洲免费av网站| 99国产精品久久久久久久成人热 | 国产精品美女久久久久av超清| 欧美激情麻豆| 亚洲精品黄网在线观看| 蜜臀久久99精品久久久画质超高清| 久久se精品一区二区| 国产精品自拍网站| 亚洲天堂av电影| 亚洲女ⅴideoshd黑人| 欧美日韩一区三区四区| 日韩午夜av电影| 夜夜嗨一区二区三区| 欧美久久一区| 亚洲蜜桃精久久久久久久| 日韩视频在线观看| 欧美巨乳在线| 亚洲免费观看在线视频| 一区二区欧美日韩视频| 欧美午夜精品伦理| 亚洲欧美成人精品| 久久久青草婷婷精品综合日韩| 欧美成人嫩草网站| 欧美电影免费| 国产精品捆绑调教| 亚洲午夜精品久久久久久浪潮| 亚洲欧美综合另类中字| 国产精品视频免费在线观看| 午夜在线视频观看日韩17c| 欧美在线观看视频| 国产在线观看91精品一区| 久久久久久久久久看片| 欧美96在线丨欧| 一区二区三区日韩欧美| 国产精品视频免费观看www| 久久精品人人做人人爽| 欧美激情第10页| 亚洲欧美日韩区| 国产亚洲一区精品| 免费黄网站欧美| 宅男在线国产精品| 久久综合精品国产一区二区三区| **性色生活片久久毛片| 欧美日韩中文字幕在线| 欧美影院一区| 亚洲精品专区| 免费亚洲电影在线| 亚洲一区尤物| 亚洲高清中文字幕| 国产精品国产三级国产专区53| 久久精品国产欧美激情| 亚洲精品欧洲精品| 久久综合九色九九| 亚洲欧美日韩国产成人精品影院| 国产一区二区三区久久久| 欧美极品影院| 欧美主播一区二区三区美女 久久精品人| 欧美黄色视屏| 久久久久久久精| 亚洲在线一区| 亚洲精选在线观看| 国产专区欧美专区| 国产精品成人aaaaa网站 | 久久人91精品久久久久久不卡| 亚洲免费av网站| 亚洲电影免费观看高清完整版在线| 亚洲视频网站在线观看| 亚洲电影毛片| 一区二区三区中文在线观看| 国产精品乱码一区二区三区| 欧美承认网站| 免费高清在线一区| 久久久久se| 久久精品国产99精品国产亚洲性色| 宅男精品视频| 亚洲亚洲精品在线观看|