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

posts - 3,  comments - 1,  trackbacks - 0
這題沒把我弄瘋了.一個(gè)小時(shí)寫完,改了2個(gè)小時(shí)...題目給的數(shù)據(jù)太弱了,需要自己寫一些數(shù)據(jù)來驗(yàn)證...在這里給大家提供些數(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) 閱讀(1260) 評論(0)  編輯 收藏 引用

只有注冊用戶登錄后才能發(fā)表評論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


<2009年3月>
22232425262728
1234567
891011121314
15161718192021
22232425262728
2930311234

常用鏈接

留言簿(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>
            国产精品区免费视频| 亚洲在线观看免费| 欧美黄色aaaa| 欧美高清一区| 亚洲福利久久| 亚洲国产欧美日韩| 最近中文字幕日韩精品 | 精品999在线播放| 激情久久中文字幕| 亚洲国产精品尤物yw在线观看 | 亚洲欧美日韩在线观看a三区| 亚洲一区欧美激情| 久久成人精品一区二区三区| 久久亚洲精品欧美| 欧美激情一区二区| 亚洲毛片av| 午夜视频久久久久久| 久久久青草婷婷精品综合日韩| 美女性感视频久久久| 欧美日韩精品免费观看| 国产精品稀缺呦系列在线| 国模一区二区三区| 亚洲精品美女在线| 亚洲免费视频观看| 久久久五月婷婷| 亚洲电影免费观看高清| av成人免费| 久久精品欧美日韩精品| 欧美福利电影网| 国产精品九九久久久久久久| 国语精品一区| 亚洲视频www| 久久久999成人| 亚洲日本久久| 新67194成人永久网站| 裸体素人女欧美日韩| 欧美视频专区一二在线观看| 黄色工厂这里只有精品| 99国产精品国产精品毛片| 欧美一区二区三区在线看| 久久综合九九| 一区二区三区国产盗摄| 久久夜色撩人精品| 国产精品久久777777毛茸茸| 揄拍成人国产精品视频| 亚洲免费在线视频| 欧美护士18xxxxhd| 校园春色综合网| 欧美日韩hd| 伊人久久亚洲热| 亚洲欧美国产毛片在线| 亚洲成在人线av| 亚洲一区二区三区精品视频| 久久午夜精品一区二区| 一区二区三区福利| 男女视频一区二区| 国产乱码精品一区二区三区五月婷 | 蜜臀av一级做a爰片久久| 亚洲午夜电影在线观看| 欧美高清在线一区二区| 国产又爽又黄的激情精品视频| 一本色道久久综合亚洲精品不 | 国产亚洲一本大道中文在线| 日韩亚洲精品视频| 老司机一区二区三区| 亚洲欧美日韩精品久久久久| 欧美精品一区二区三区在线播放 | 亚洲制服丝袜在线| 亚洲国内自拍| 老司机午夜精品视频| 国产日韩在线视频| 亚洲欧美色婷婷| 亚洲美女诱惑| 欧美久久久久免费| 亚洲国产视频直播| 久久一区视频| 欧美在线一区二区三区| 国产精品视频男人的天堂| 一区二区三区高清视频在线观看| 欧美国产一区二区三区激情无套| 欧美有码在线视频| 国产日韩欧美一区二区三区在线观看 | 久久久视频精品| 香蕉久久夜色精品| 国产麻豆午夜三级精品| 午夜精品偷拍| 亚洲欧美成人在线| 国产精品日产欧美久久久久| 亚洲欧美春色| 亚洲天堂av高清| 国产精品久久久久久久电影 | 亚洲免费观看视频| 欧美精品一区二区三区高清aⅴ| 91久久国产自产拍夜夜嗨| 欧美波霸影院| 麻豆国产va免费精品高清在线| 在线观看日韩av电影| 男女视频一区二区| 噜噜噜91成人网| 亚洲精品久久视频| 亚洲黄色成人久久久| 欧美国产日韩一区| 正在播放亚洲一区| 一本一本a久久| 一本色道久久加勒比精品| 欧美日韩伊人| 亚洲欧美高清| 性欧美激情精品| 韩国免费一区| 欧美大色视频| 欧美好吊妞视频| 亚洲一区二区三区成人在线视频精品| aa日韩免费精品视频一| 国产精品理论片在线观看| 欧美一级网站| 久久久久国产一区二区三区| 在线日韩视频| 亚洲精品黄色| 国产精品视频九色porn| 久久久蜜桃精品| 裸体歌舞表演一区二区| 一区二区三区久久网| 亚洲午夜视频在线观看| 国产一区二区三区久久| 欧美激情在线免费观看| 欧美日韩理论| 久久爱91午夜羞羞| 裸体女人亚洲精品一区| 亚洲一区二区免费看| 欧美一区=区| 亚洲欧洲精品一区二区| 一区二区三区国产在线| 国产一区二区三区四区hd| 亚洲电影一级黄| 国产精品二区影院| 理论片一区二区在线| 欧美人与性动交a欧美精品| 欧美在线视频a| 欧美+日本+国产+在线a∨观看| 亚洲午夜av在线| 久久久久久久网站| 亚洲一区高清| 久久久综合网站| 亚洲欧美在线高清| 免费亚洲婷婷| 久久狠狠婷婷| 欧美激情一区二区三区 | 国产精品久久久久久久电影 | 在线中文字幕一区| 久久爱另类一区二区小说| 日韩午夜电影av| 久久精品国产久精国产爱| 99精品国产99久久久久久福利| 欧美在线观看视频一区二区| 99精品国产一区二区青青牛奶| 欧美影院一区| 中国成人亚色综合网站| 久久在线视频| 久久精品国产综合| 欧美日韩色一区| 欧美国产日韩一二三区| 国产伦精品一区二区三区照片91| 亚洲黄色有码视频| 在线成人免费视频| 亚洲欧美日韩另类精品一区二区三区| 亚洲精品在线视频观看| 久久精品国产999大香线蕉| 亚洲在线一区二区| 欧美黑人一区二区三区| 男女激情视频一区| 国产午夜亚洲精品不卡| 亚洲视频在线观看免费| 亚洲免费大片| 老司机午夜精品视频| 久久精品亚洲| 国产精品美女午夜av| 最新69国产成人精品视频免费| 尤物在线观看一区| 久久丁香综合五月国产三级网站| 亚洲欧美久久久久一区二区三区| 欧美激情国产日韩| 美女国内精品自产拍在线播放| 亚洲欧洲在线一区| 亚洲第一页在线| 欧美在线一区二区三区| 欧美一区二区三区在线| 欧美婷婷久久| 99热在线精品观看| 99精品欧美一区二区三区| 久久综合久久综合九色| 美女脱光内衣内裤视频久久影院| 国产欧美精品日韩精品| 亚洲一区二区伦理| 亚洲一区自拍| 欧美午夜国产| 一本一本a久久| 亚洲在线电影| 国产精品亚洲一区| 亚洲一区二区三区中文字幕| 亚洲欧美日韩精品久久奇米色影视|