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

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 生活要低調 閱讀(1259) 評論(0)  編輯 收藏 引用

只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


<2025年12月>
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910

常用鏈接

留言簿(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>
            亚洲精品在线视频观看| 亚洲精品久久久蜜桃| 欧美风情在线| 久久九九国产| 国产精品免费视频xxxx| 亚洲福利在线看| 狠狠色丁香久久婷婷综合丁香| 日韩视频免费在线观看| 91久久极品少妇xxxxⅹ软件| 久久福利影视| 久久精品国产精品| 国产啪精品视频| 亚洲深夜福利| 亚洲永久精品大片| 欧美日韩理论| 日韩午夜剧场| 亚洲一区国产视频| 欧美日韩美女在线观看| 最新日韩在线视频| 亚洲精品国产精品乱码不99按摩| 久久久久久久一区| 久久久久久久一区二区| 国产欧美一区二区三区在线老狼| 亚洲一区二区高清视频| 亚洲色无码播放| 欧美日韩天天操| 99热这里只有成人精品国产| 在线综合欧美| 国产精品嫩草影院一区二区| 在线亚洲高清视频| 亚洲女同性videos| 国产人妖伪娘一区91| 先锋影音国产精品| 免费毛片一区二区三区久久久| 亚洲二区视频| 欧美国产成人精品| 夜夜嗨av一区二区三区四区| 亚洲无线视频| 国产欧美日韩精品在线| 久久精品二区三区| 欧美激情免费在线| 在线视频一区观看| 国产精品免费观看视频| 久久精品夜色噜噜亚洲aⅴ| 蜜乳av另类精品一区二区| 亚洲精品中文字幕在线观看| 欧美日韩国产成人在线观看| 亚洲视频网在线直播| 久久久久免费视频| 亚洲精品一区二区三区婷婷月| 欧美三级欧美一级| 久久成人精品视频| 亚洲国产视频一区| 欧美在线播放一区| 亚洲激情小视频| 国产精品网红福利| 裸体歌舞表演一区二区| 一区二区三区导航| 美女精品国产| 亚洲一区二区精品| 一区二区在线观看av| 欧美日韩一区在线观看| 欧美影院精品一区| 日韩视频在线播放| 久久深夜福利免费观看| 中文欧美日韩| 在线精品福利| 国产精品一区二区久激情瑜伽| 另类欧美日韩国产在线| 中文成人激情娱乐网| 女主播福利一区| 性一交一乱一区二区洋洋av| 亚洲人成亚洲人成在线观看图片| 欧美日韩一区二| 免费观看欧美在线视频的网站| 亚洲视频每日更新| 亚洲国产精品第一区二区| 久久国产视频网| 亚洲图中文字幕| 亚洲日韩第九十九页| 国产一区二区三区在线观看网站 | 欧美不卡三区| 亚洲欧美在线播放| 一本色道久久综合亚洲91| 樱花yy私人影院亚洲| 国产精品丝袜91| 欧美偷拍另类| 欧美精品九九99久久| 久久久综合香蕉尹人综合网| 亚洲一区二区三区精品视频| 最新精品在线| 亚洲国产va精品久久久不卡综合| 久久精品人人做人人综合| 亚洲系列中文字幕| 9久re热视频在线精品| 亚洲激情专区| 亚洲国产精品一区二区第四页av | 正在播放亚洲一区| 亚洲国产毛片完整版| 欧美aⅴ99久久黑人专区| 久久成人免费视频| 欧美一级久久| 午夜日韩激情| 欧美自拍偷拍| 久久国产精品电影| 久久久久国色av免费观看性色| 亚洲与欧洲av电影| 欧美一区二区三区视频在线 | 亚洲欧美日韩高清| 亚洲午夜在线观看| 亚洲一区二区三区色| 夜夜嗨一区二区| 日韩亚洲欧美一区| 夜夜嗨av一区二区三区| 99视频国产精品免费观看| 99精品欧美一区二区三区| 亚洲精品免费一二三区| 亚洲精品国偷自产在线99热| 亚洲美女视频在线观看| 日韩视频在线观看| 亚洲欧美一级二级三级| 久久国产精品久久久久久电车| 久久国产精品久久久久久| 久久亚洲精品欧美| 欧美精品videossex性护士| 欧美日韩一区二区免费视频| 国产精品久久久久久久久| 国产欧美日韩亚洲一区二区三区| 国内视频一区| 亚洲日韩欧美视频一区| 亚洲综合清纯丝袜自拍| 久久久99国产精品免费| 亚洲第一页在线| 中文精品视频| 久久久噜噜噜久久人人看| 欧美激情综合亚洲一二区| 国产精品video| 激情另类综合| 亚洲午夜一区| 免费久久99精品国产自| 日韩亚洲成人av在线| 久久高清福利视频| 欧美精品色综合| 国产综合网站| 夜夜狂射影院欧美极品| 久久国产精品99国产精| 亚洲韩国青草视频| 亚洲欧美日韩另类| 欧美激情精品| 韩国一区电影| 亚洲一二三四区| 欧美a级一区| 午夜在线视频观看日韩17c| 欧美激情第9页| 精品1区2区| 亚洲欧美日韩另类| 91久久久久久| 久久久久久一区二区| 国产精品久久久久999| 亚洲国产精品热久久| 欧美在线亚洲在线| 9色porny自拍视频一区二区| 久久久久久噜噜噜久久久精品| 欧美视频一区二区| 亚洲精品影视| 噜噜噜躁狠狠躁狠狠精品视频 | 一区二区三区精品国产| 久久综合影视| 国内精品久久久久影院色| 宅男在线国产精品| 亚洲经典视频在线观看| 久久精品国产精品亚洲| 国产精品永久入口久久久| 国产精品99久久久久久人| 欧美成人久久| 久久久久一区二区三区四区| 国产欧美日韩一区二区三区在线| 中国亚洲黄色| 日韩西西人体444www| 欧美成人精精品一区二区频| 一区二区三区在线观看视频| 欧美亚洲一区二区在线| 国产精品99久久久久久有的能看| 欧美精品免费观看二区| 亚洲第一色中文字幕| 久久一区二区三区超碰国产精品| 午夜欧美大片免费观看| 国产欧美日韩激情| 欧美中在线观看| 欧美一区网站| 国产亚洲一级高清| 久久综合久久综合久久| 久久久99国产精品免费| 在线观看视频日韩| 欧美另类69精品久久久久9999| 亚洲国产精品久久久久| 欧美激情国产高清| 欧美—级a级欧美特级ar全黄| 亚洲美女诱惑| 一区二区三区导航|