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

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>
            国产麻豆视频精品| 欧美sm视频| 国产欧美短视频| 欧美日韩三级一区二区| 欧美日韩亚洲一区二区| 欧美激情第9页| 蜜桃久久精品一区二区| 麻豆成人在线| 欧美.日韩.国产.一区.二区| 亚洲国产成人精品视频| 欧美国产乱视频| 欧美韩国一区| 中文有码久久| 欧美亚洲三区| 久久视频在线视频| 欧美激情国产高清| 欧美日韩另类视频| 国产精品一区二区三区观看| 国产中文一区二区三区| 国语精品一区| 亚洲无线一线二线三线区别av| 亚洲视频欧洲视频| 久久久亚洲综合| 99re热精品| 久久久999国产| 欧美日韩精品免费观看视频完整 | 国产精品美女久久久久aⅴ国产馆| 欧美特黄一级| 在线观看精品视频| 亚洲一级二级| 免费成人小视频| 一本久久知道综合久久| 久久成人这里只有精品| 欧美视频在线免费看| 国精品一区二区三区| av成人激情| 久久精品国产99| 夜夜夜久久久| 欧美激情在线有限公司| 国模精品娜娜一二三区| 欧美一进一出视频| 欧美激情精品| 亚洲专区免费| 欧美日精品一区视频| 91久久精品国产91性色tv| 久久精品二区| 中文欧美字幕免费| 欧美二区视频| 亚洲电影在线看| 久久动漫亚洲| 亚洲精品久久久久久下一站| 女同性一区二区三区人了人一| 国产精品男人爽免费视频1 | 国产一区二区高清不卡| 亚洲色图综合久久| 亚洲高清不卡一区| 久久久久久尹人网香蕉| 国产精品夜夜嗨| 亚洲一二三四区| 99国产精品自拍| 欧美不卡激情三级在线观看| 在线观看久久av| 玖玖玖国产精品| 久久精品一区二区| 激情国产一区| 蜜臀av一级做a爰片久久| 欧美中文在线观看| 国产精品羞羞答答xxdd| 欧美一区精品| 牛牛精品成人免费视频| 久久夜色精品国产| 在线日韩中文字幕| 欧美电影在线观看| 欧美第一黄网免费网站| 在线观看91精品国产入口| 另类激情亚洲| 久久久久九九九| 亚洲人午夜精品免费| 亚洲国产99| 欧美日在线观看| 亚洲欧洲av一区二区| 性欧美xxxx大乳国产app| 国产在线不卡精品| 欧美成人精品福利| 欧美大片在线观看| 亚洲尤物视频在线| 欧美综合国产| 亚洲高清视频一区| 亚洲国产影院| 国产精品护士白丝一区av| 欧美一区二区三区四区在线观看地址| 欧美在线免费一级片| 99re66热这里只有精品3直播| 亚洲精品社区| 国产一区深夜福利| 亚洲人成人一区二区三区| 国产精品永久| 亚洲激情女人| 国产主播一区二区| 一区二区91| 最新日韩在线视频| 亚洲精品免费看| 国产一区二区三区在线观看精品 | 亚洲区一区二| 国产欧美一区二区精品婷婷| 欧美成人精品一区| 国产精品男人爽免费视频1| 欧美激情精品久久久久久久变态| 国产精品久久久久国产a级| 欧美国产日韩精品| 韩日精品视频| 亚洲狼人精品一区二区三区| 亚洲欧美日韩国产综合精品二区| 欧美一级淫片播放口| 久久综合久久88| 午夜亚洲精品| 欧美日韩精品一区二区天天拍小说 | 久久精品视频播放| 亚洲一区美女视频在线观看免费| 久久视频一区二区| 欧美亚洲综合在线| 欧美日在线观看| 亚洲黄色av一区| 加勒比av一区二区| 亚洲欧美日韩国产成人精品影院| 一区二区国产在线观看| 老司机午夜免费精品视频| 久久久91精品国产一区二区三区| 国产精品久久久久国产精品日日 | 久久精品中文字幕一区二区三区| 亚洲性色视频| 欧美视频日韩视频| 99在线|亚洲一区二区| 亚洲美女视频在线观看| 你懂的视频欧美| 欧美电影免费观看高清| 亚洲福利在线看| 久久一区二区视频| 欧美国产精品| 日韩一级成人av| 欧美日韩在线一区二区| 99av国产精品欲麻豆| 亚洲淫性视频| 国产日韩欧美91| 久久精品国产亚洲一区二区三区| 久久久久久久尹人综合网亚洲| 国产综合亚洲精品一区二| 久久久999国产| 亚洲丰满少妇videoshd| 亚洲激情午夜| 欧美日本高清一区| 亚洲视频精选在线| 久久福利毛片| 国产精品网站在线| 久久久91精品国产一区二区三区 | 亚洲欧美国产视频| 久久成人在线| 揄拍成人国产精品视频| 欧美成人免费在线观看| 亚洲精品网站在线播放gif| 亚洲一本大道在线| 国产欧美韩国高清| 久久久久久久综合| 亚洲精品美女久久久久| 午夜精品久久久久久久久久久久久| 国产精品一区二区久久久| 久久亚洲风情| 在线视频亚洲一区| 另类综合日韩欧美亚洲| 亚洲精品国产系列| 国产精品一香蕉国产线看观看 | 久久免费黄色| 亚洲九九爱视频| 久久久噜噜噜久久中文字幕色伊伊 | 欧美一级免费视频| 欧美黄污视频| 亚洲欧美日韩直播| 亚洲国产免费| 国产精品视频99| 欧美成在线视频| 亚洲一区二区三区777| 免费观看在线综合| 午夜精品福利一区二区三区av| 影院欧美亚洲| 国产精品中文字幕在线观看| 欧美88av| 亚洲视频视频在线| 国产精品丝袜xxxxxxx| 久久视频在线视频| 国产精品久久久999| 亚洲欧美日韩另类| 亚洲国产精品久久久久秋霞不卡| 亚洲欧美另类在线观看| 亚洲日本成人| 国产一二精品视频| 国产精品久久影院| 欧美日韩在线精品| 欧美大片网址| 麻豆精品一区二区av白丝在线| 性视频1819p久久|