• <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>

            gzwzm06

              C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
              1 隨筆 :: 52 文章 :: 17 評(píng)論 :: 0 Trackbacks
              1#include <cstdio>
              2#include <cstring>
              3
              4const int MAXE = 80;
              5const int MAXN = 60;
              6const int SIZE = 5000;
              7
              8struct NODE
              9{
             10    char m_cMark;
             11    int m_pre;
             12    int m_x, m_y;
             13}
            Q[SIZE];
             14
             15int N, E, g_start_x, g_start_y, g_end;
             16char map[MAXN][MAXE];
             17bool visited[MAXN][MAXE];
             18
             19void BFS()
             20{
             21    int h = 0, t = 1;
             22    NODE temp;
             23    visited[g_start_x][g_start_y] = true;
             24    Q[0].m_x = g_start_x;
             25    Q[0].m_y = g_start_y;
             26
             27    while ( h <= t )
             28    {
             29        temp = Q[h];
             30
             31        if ( map[temp.m_x][temp.m_y] =='E' )
             32        {
             33            g_end = temp.m_pre;
             34            break;
             35        }

             36
             37        if ( temp.m_x > 0 &&  !visited[temp.m_x - 1][temp.m_y] )
             38        {
             39            visited[temp.m_x - 1][temp.m_y] = true;
             40            Q[t].m_x = temp.m_x - 1;
             41            Q[t].m_y = temp.m_y;
             42            Q[t].m_pre = h;
             43            Q[t].m_cMark = 'N';
             44            if ( map[temp.m_x - 1][temp.m_y] == '+' )
             45                Q[t].m_cMark = '+' ;
             46            t++;
             47
             48        }

             49        if ( temp.m_y + 1 < E &&  !visited[temp.m_x][temp.m_y + 1] )
             50        {
             51            visited[temp.m_x][temp.m_y + 1= true;
             52            Q[t].m_x = temp.m_x;
             53            Q[t].m_y = temp.m_y + 1;
             54            Q[t].m_pre = h;
             55            Q[t].m_cMark = 'E';
             56            if ( map[temp.m_x][temp.m_y + 1== '+' )
             57                Q[t].m_cMark = '+' ;
             58            t++;
             59        }

             60        if ( temp.m_x + 1 < N &&  !visited[temp.m_x + 1][temp.m_y] )
             61        {
             62            visited[temp.m_x + 1][temp.m_y] = true;
             63            Q[t].m_x = temp.m_x + 1;
             64            Q[t].m_y = temp.m_y;
             65            Q[t].m_pre = h;
             66            Q[t].m_cMark = 'S';
             67            if ( map[temp.m_x + 1][temp.m_y] == '+' )
             68                Q[t].m_cMark = '+' ;
             69            t++;
             70        }

             71        if ( temp.m_y > 0 &&  !visited[temp.m_x][temp.m_y - 1] )
             72        {
             73            visited[temp.m_x][temp.m_y - 1= true;
             74            Q[t].m_x = temp.m_x;
             75            Q[t].m_y = temp.m_y - 1;
             76            Q[t].m_pre = h;
             77            Q[t].m_cMark = 'W';
             78            if ( map[temp.m_x][temp.m_y - 1== '+' )
             79                Q[t].m_cMark = '+' ;
             80            t++;
             81        }

             82
             83        h++;
             84    }

             85}

             86
             87int main()
             88{
             89//    freopen("1.txt", "r", stdin);
             90    int i, j, len;
             91    char ch, result[SIZE];
             92
             93    scanf("%d %d"&N, &E);
             94
             95    N = (N << 1- 1, E = (E << 1- 1;
             96
             97    memset(visited, 0sizeof(visited));
             98    getchar();
             99    for ( i = 0; i < N; ++i )
            100    {
            101        for ( j = 0; j < E; ++j )
            102        {
            103            ch = getchar();
            104            map[i][j] = ch;
            105            if ( ch == 'S' )
            106            {
            107                g_start_x = i;
            108                g_start_y = j;
            109            }

            110            else if ( ch == '.' )
            111            {
            112                visited[i][j] = true;
            113            }

            114        }

            115        getchar();
            116    }

            117
            118    BFS();
            119
            120    i = g_end, len = 0;
            121    while ( i != 0 )
            122    {
            123        if ( Q[i].m_cMark != '+' )
            124        {
            125            result[len++= Q[i].m_cMark;
            126        }

            127        i = Q[i].m_pre;
            128    }

            129
            130    i = len - 1, j = 1;
            131
            132    len -= 2;
            133    while ( len >= 0 )
            134    {
            135        if ( result[len] == result[i] ) {
            136            j++;
            137        }

            138        else {
            139            printf("%c %d\n", result[i], j);
            140            i = len;
            141            j = 1;
            142        }

            143        len--;
            144    }

            145    printf("%c %d\n", result[i], j);
            146
            147    return 0;
            148}
            posted on 2009-04-02 14:39 閱讀(174) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 搜索
            久久午夜羞羞影院免费观看 | 国产精品伦理久久久久久| 亚洲AⅤ优女AV综合久久久| 人妻少妇精品久久| 久久久婷婷五月亚洲97号色| 久久中文娱乐网| 久久亚洲熟女cc98cm| 欧美久久综合性欧美| 久久人人爽人人爽人人片AV东京热 | yy6080久久| 久久久久久综合一区中文字幕| 久久99精品免费一区二区| 99久久精品免费看国产一区二区三区| 久久无码人妻一区二区三区午夜 | 狠狠人妻久久久久久综合蜜桃 | 久久综合九色综合欧美就去吻| 亚洲精品无码久久久久| 精品国产青草久久久久福利 | 久久乐国产精品亚洲综合| 久久人人妻人人爽人人爽| 亚洲精品综合久久| 精品久久久久久久久久久久久久久 | 无码专区久久综合久中文字幕| 国产伊人久久| 99久久99久久精品国产片果冻| 日产精品久久久一区二区| 久久综合鬼色88久久精品综合自在自线噜噜 | 99久久国产宗和精品1上映 | 国产美女久久精品香蕉69| 亚洲色大成网站www久久九 | 色综合久久88色综合天天| 狠狠色丁香婷婷久久综合不卡 | 一本色道久久88加勒比—综合| 色婷婷久久综合中文久久蜜桃av| 久久人人爽人人爽人人片AV麻豆| 日本久久久久久中文字幕| 久久久国产精品福利免费| 久久精品免费观看| 国产精品成人精品久久久| 88久久精品无码一区二区毛片 | 亚洲欧美成人综合久久久|