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

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) 閱讀(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>
            亚洲国产成人91精品| 亚洲欧洲99久久| 一区二区亚洲欧洲国产日韩| 激情久久久久久久久久久久久久久久| 亚洲欧美日韩另类| 久久精品日韩| 亚洲精品护士| 午夜精品在线看| 欧美精品二区| 国内自拍亚洲| 亚洲欧美另类在线| 亚洲欧美日韩一区二区在线| 韩国一区二区三区在线观看| 嫩草成人www欧美| 亚洲影院在线观看| 欧美二区视频| 欧美小视频在线观看| 狠狠色伊人亚洲综合网站色| 欧美jjzz| 国产精品卡一卡二卡三| 亚洲毛片在线观看.| 久久久91精品| 亚洲在线观看| 亚洲韩国日本中文字幕| 久久久久久成人| 欧美激情第五页| 欧美一区二视频在线免费观看| 最新日韩在线视频| 久久这里只精品最新地址| 国产精品婷婷| 亚洲欧美综合另类中字| 一区二区电影免费观看| 免费成人激情视频| 亚洲黑丝在线| 欧美一区二视频| 国产喷白浆一区二区三区 | 午夜精品久久久久久久蜜桃app| 极品中文字幕一区| 亚洲免费在线观看视频| 国产精品一区二区久久精品| 欧美一级电影久久| 午夜宅男久久久| 亚洲一二三区视频在线观看| 亚洲精品一区二区三区福利| 欧美激情一区二区三级高清视频| 久久久久久夜| 久久中文字幕一区| 欧美中文字幕在线视频| 久久精品理论片| 亚洲电影免费观看高清完整版在线观看 | 在线欧美影院| 欧美主播一区二区三区| 一区免费观看| 欧美一级精品大片| 久久国产婷婷国产香蕉| 国产精品一二一区| 亚洲色在线视频| 韩国精品在线观看| 亚洲欧美中文另类| 久久精品夜夜夜夜久久| 国产一区二区三区久久久| 久久综合伊人77777| 欧美成人精品激情在线观看| 欧美成ee人免费视频| 亚洲电影一级黄| 久久综合中文色婷婷| 欧美电影在线观看| 欧美三级午夜理伦三级中文幕| 亚洲一区二区三区四区在线观看| 欧美日韩免费在线观看| 久久高清国产| 国自产拍偷拍福利精品免费一| 欧美一区2区三区4区公司二百| 久久九九国产精品怡红院| 国内精品视频在线播放| 91久久线看在观草草青青| 日韩网站在线| 欧美在线www| 欧美肥婆在线| 亚洲午夜电影网| 国产欧美日韩在线播放| 久久久久久久久久久成人| 亚洲一区二区免费看| 国产精品香蕉在线观看| 欧美在线国产| 亚洲大胆人体视频| 欧美四级伦理在线| 亚洲欧美日韩一区二区三区在线观看| 久久精品视频在线看| 亚洲欧洲偷拍精品| 久久久久久久综合色一本| 欧美国产一区二区| 激情91久久| 欧美久久久久久久久久| 亚洲成色精品| 亚洲欧美成人精品| 狠狠色综合色综合网络| 欧美美女bbbb| 久久精品国产精品| 久久精品亚洲一区二区三区浴池| 亚洲激情影院| 国产欧美亚洲一区| 欧美日韩精品免费| 日韩亚洲视频| 一本色道久久综合亚洲二区三区| 久久伊人精品天天| 免费久久精品视频| 亚洲电影免费观看高清完整版在线| 欧美人与性动交α欧美精品济南到| 亚洲欧美日韩一区二区在线| 亚洲国产高清在线观看视频| 久久精品夜夜夜夜久久| 亚洲午夜电影网| 亚洲国产一区二区三区青草影视| 国产乱理伦片在线观看夜一区| 老色批av在线精品| 欧美一级在线播放| 一区二区精品国产| 亚洲精品国产欧美| 欧美91视频| 久久久欧美精品| 午夜精品在线观看| 亚洲午夜久久久久久久久电影网| 亚洲黄色免费网站| 黄色日韩网站视频| 国产麻豆精品在线观看| 欧美色精品在线视频| 欧美理论视频| 欧美韩国一区| 欧美a级理论片| 99日韩精品| 久久狠狠一本精品综合网| 亚洲男人的天堂在线| 亚洲少妇在线| 国产在线精品自拍| 国产欧美日韩在线播放| 国产精一区二区三区| 欧美午夜无遮挡| 欧美体内she精视频在线观看| 欧美乱大交xxxxx| 欧美老女人xx| 欧美日韩你懂的| 国产精品激情| 蜜桃伊人久久| 欧美大片第1页| 欧美韩日亚洲| 欧美日韩国产精品成人| 欧美日韩国产精品一区二区亚洲 | 亚洲一区二区欧美日韩| 亚洲小视频在线观看| 老司机久久99久久精品播放免费| 久久看片网站| 欧美成人激情视频免费观看| 亚洲国产精品成人久久综合一区| 欧美一级网站| 久久九九久久九九| 欧美不卡高清| 亚洲精品国产欧美| 亚洲一区不卡| 欧美在线亚洲| 欧美成人精品三级在线观看 | 久久综合精品国产一区二区三区| 乱码第一页成人| 欧美日韩国产麻豆| 国产精品日韩久久久久| 国内外成人免费视频| 亚洲激情视频网| 亚洲欧美日韩在线综合| 久久久五月婷婷| 亚洲国产综合视频在线观看| 一区二区欧美在线观看| 欧美一区二区性| 欧美激情精品久久久久久黑人| 国产精品久久久久久五月尺| 黄色资源网久久资源365| 亚洲精品一区在线观看| 欧美一区在线视频| 欧美国产日韩在线观看| 亚洲午夜日本在线观看| 久久一二三四| 国产精品免费看| 亚洲欧洲综合| 久久精品夜色噜噜亚洲aⅴ| 亚洲日本一区二区三区| 性亚洲最疯狂xxxx高清| 欧美裸体一区二区三区| 国外成人免费视频| 亚洲欧美日韩精品久久| 欧美国产日韩一区二区三区| 亚洲欧美激情一区二区| 欧美激情第三页| 伊人成综合网伊人222| 伊人久久大香线蕉综合热线| 在线一区二区日韩| 亚洲午夜成aⅴ人片| 亚洲国产精品第一区二区| 亚欧成人精品| 国产精品一二三四区| 一区二区三区视频在线观看| 欧美国产日韩一区二区|