• <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++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
              1 隨筆 :: 52 文章 :: 17 評論 :: 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) 評論(0)  編輯 收藏 引用 所屬分類: 搜索
            久久婷婷国产剧情内射白浆 | 成人免费网站久久久| 久久精品中文騷妇女内射| 欧美精品久久久久久久自慰| 久久99热只有频精品8| 久久伊人精品青青草原高清| 免费精品久久久久久中文字幕| 久久久SS麻豆欧美国产日韩| 国产精品久久久久久久| 三级韩国一区久久二区综合| 狠狠干狠狠久久| 亚洲AV成人无码久久精品老人| 久久精品成人免费国产片小草| 人妻精品久久无码区| 午夜视频久久久久一区| 久久精品国产精品亚洲精品| 久久婷婷色香五月综合激情 | 国内精品久久久久久久久| 亚洲午夜久久久久久久久久| 久久亚洲国产精品123区| 久久国产精品99精品国产| 一本色综合久久| 欧美精品丝袜久久久中文字幕 | 午夜天堂av天堂久久久| 久久精品国产精品亚洲下载| 四虎国产精品免费久久久| 国产成人精品久久免费动漫| 久久夜色精品国产噜噜噜亚洲AV| 久久国产乱子伦精品免费午夜| 久久久精品一区二区三区| 久久久久亚洲AV无码专区体验| 久久亚洲国产精品成人AV秋霞| 欧美日韩成人精品久久久免费看| 国产真实乱对白精彩久久| 国产精品久久久久jk制服| 久久99国产综合精品| 久久99精品久久久久婷婷| 91精品国产综合久久久久久 | 久久激情五月丁香伊人| 久久久91人妻无码精品蜜桃HD | 囯产精品久久久久久久久蜜桃|