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

uva 657 - The die is cast

   這個題不錯,居然需要在dfs里面寫bfs。題意類似于圖像識別里面,搜索一張圖像里面的某個指定區(qū)域里面有幾個斑點,題意里面的斑點是指色子。
30 15 
..............................
..............................
...............*..............
...*****......****............
...*X***.....**X***...........
...*****....***X**............
...***X*.....****.............
...*****.......*..............
..............................
........***........******.....
.......**X****.....*X**X*.....
......*******......******.....
.....****X**.......*X**X*.....
........***........******.....
..............................
比如上面這個30 * 15的圖片里面,一共有四個區(qū)域,*作為區(qū)域的底色,然后是求區(qū)域里面有多少個X的塊。這個題單純dfs的話,很沒辦法,因為無法一次性把連接在一起的X都搜索了。比如,
5 5
XXX*X 
XXX*X 
..... 
X***X 
XX*** 
的時候,dfs很明顯就會出現(xiàn)問題,因為會先離開X塊,再次回到X塊,計數(shù)就會出現(xiàn)問題了。因此只能遇到X的時候,進行一次bfs,將與其相連接的X全部搜索掉。。。并且找到與當前X塊相連接的一個*的位置,如果有這樣的位置,就繼續(xù)進行dfs。

代碼如下:
#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <queue>
using namespace std;

int nW, nH;
char szData[100][100];
bool bVisit[100][100];
int nNum;
int nDice[100];
int nAdd[4][2] = {{0, -1}, {-1, 0}, {0, 1}, {1, 0}};

bool IsPosOk(int i, int j)
{
    return i >= 0 && i < nH && j >= 0 && j < nW;
}

struct POS
{
    int nI;
    int nJ;
};

bool Bfs(int& nI, int& nJ)
{
    bool bRet = false;
    queue<POS> qp;
    POS pos = {nI, nJ};
    int i = nI, j = nJ;

    qp.push(pos);
    while (qp.empty() == false)
    {
        POS head = qp.front();
        qp.pop();

        for (int m = 0; m < 4; ++m)
        {
            int nNextI = head.nI + nAdd[m][0];
            int nNextJ = head.nJ + nAdd[m][1];

            if (IsPosOk(nNextI, nNextJ) && bVisit[nNextI][nNextJ] == false)
            {
                if (szData[nNextI][nNextJ] == 'X')
                {
                    bVisit[nNextI][nNextJ] = true;
                    POS pos = {nNextI, nNextJ};
                    qp.push(pos);
                }
                else if (szData[nNextI][nNextJ] == '*')
                {
                    bRet = true;
                    nI = nNextI;//   這里是返回新的dfs位置
                    nJ = nNextJ;
                }
            }
        }
    }
    
    return bRet;
}

void dfs(int i, int j, int nNum)
{
    bVisit[i][j] = true;
    if (szData[i][j] == 'X')
    {
        nDice[nNum]++;
        bool bDfs = Bfs(i, j);//擴散掉當前連通的所有'X'
        if (bDfs == false)
        {
            return;
        }
        else
        {
            dfs(i, j, nNum);
        }
    }

    for (int m = 0; m < 4; ++m)
    {
        int nNextI = i + nAdd[m][0];
        int nNextJ = j + nAdd[m][1];

        if (IsPosOk(nNextI, nNextJ) && bVisit[nNextI][nNextJ] == false
                && szData[nNextI][nNextJ] != '.')
        {
            dfs(nNextI, nNextJ, nNum);
        }
    }
}

int main()
{
    int nCases = 1;

    while (scanf("%d%d", &nW, &nH), nW + nH)
    {
        for (int i = 0; i < nH; ++i)
        {
            scanf("%s", szData[i]);
        }
        memset(bVisit, falsesizeof(bVisit));
        memset(nDice, 0, sizeof(nDice));
        nNum = 0;

        for (int i = 0; i < nH; ++i)
        {
            for (int j = 0; j < nW; ++j)
            {
                if (szData[i][j] == 'X' && bVisit[i][j] == false)
                {
                    dfs(i, j, nNum);
                    nNum++;
                }
            }
        }
        sort(nDice, nDice + nNum);

        printf("Throw %d\n", nCases++);
        for (int i = 0; i < nNum; ++i)
        {
            printf("%d%s", nDice[i], i == nNum - 1 ? "\n" : " ");
        }
        printf("\n");
    }

    return 0;
}

posted on 2012-07-14 21:16 yx 閱讀(960) 評論(0)  編輯 收藏 引用 所屬分類: 搜索

<2012年7月>
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234

導航

統(tǒng)計

公告

常用鏈接

留言簿(3)

隨筆分類

隨筆檔案

me

好友

同學

網友

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲福利视频一区二区| 国产欧美日本一区视频| 欧美成人资源网| 亚洲欧美日韩一区二区三区在线观看 | 你懂的视频一区二区| 久久精品毛片| 91久久极品少妇xxxxⅹ软件| 国产一区深夜福利| 国产精品久久久| 国产精品视频久久久| 国产精品vvv| 国产欧美日韩综合精品二区| 国产日韩一区在线| 黄色一区二区三区| 另类天堂av| 欧美a级片网站| 欧美连裤袜在线视频| 欧美日韩成人一区二区| 国产精品分类| 国产在线一区二区三区四区 | 欧美激情视频在线免费观看 欧美视频免费一| 午夜精品一区二区三区电影天堂 | 久久夜色撩人精品| 欧美不卡视频| 国产精品免费在线| 一区二区三欧美| 亚洲永久网站| 久久高清一区| 欧美精品一卡二卡| 美腿丝袜亚洲色图| 一区二区久久| 亚洲欧美三级伦理| 理论片一区二区在线| 欧美成人午夜免费视在线看片| 欧美国产精品人人做人人爱| 亚洲日本无吗高清不卡| 日韩天堂在线视频| 亚洲免费小视频| 久久影视精品| 国产精品丝袜白浆摸在线| 亚洲国产精品久久久久久女王| 亚洲一级二级| 欧美成人蜜桃| 欧美一级片久久久久久久| 99国内精品久久| 久久精品99国产精品| 欧美日韩网站| 亚洲福利视频在线| 久久国产精品久久w女人spa| 91久久国产综合久久91精品网站| 在线播放中文一区| 亚洲视屏一区| 国产精品卡一卡二卡三| 亚洲高清在线播放| 久久精品国产99精品国产亚洲性色| 亚洲激情综合| 欧美freesex交免费视频| 国产亚洲午夜| 欧美在线电影| 亚洲欧美电影院| 国产精品v亚洲精品v日韩精品 | 欧美日韩色婷婷| 亚洲国产精品传媒在线观看| 久久久国产精品一区二区中文| 亚洲欧美三级伦理| 亚洲久久成人| 欧美高清视频一区二区| 亚洲成人在线网站| 玖玖玖国产精品| 久久精品女人| 伊人久久大香线蕉av超碰演员| 亚洲国产欧美一区二区三区丁香婷| 一区二区三区四区精品| 欧美日韩情趣电影| 一本综合久久| 一区二区三区久久精品| 国产精品久久999| 亚洲综合第一页| 亚洲视频一起| 国产深夜精品| 久久gogo国模裸体人体| 亚洲人成77777在线观看网| 欧美成人高清视频| 国产精品99久久久久久久久| 日韩小视频在线观看| 欧美性淫爽ww久久久久无| 一区二区高清视频| 亚洲午夜电影在线观看| 国产一区二区剧情av在线| 免费日韩精品中文字幕视频在线| 久久野战av| 中日韩午夜理伦电影免费| 激情一区二区| 亚洲欧美日韩国产一区二区三区| 亚洲欧美国产va在线影院| 精品成人在线| 99re热这里只有精品视频| 国产女主播在线一区二区| 欧美高清不卡在线| 国产精品久久久久7777婷婷| 另类专区欧美制服同性| 欧美视频日韩| 欧美成人免费va影院高清| 国产精品成人免费| 美女图片一区二区| 国产精品九色蝌蚪自拍| 欧美成人综合网站| 国产精品理论片| 亚洲国内精品在线| 一区二区三区在线不卡| 国产精品美女久久久久av超清| 久久久成人精品| 欧美日韩精品三区| 先锋影音一区二区三区| 久久久女女女女999久久| 久久精品天堂| 日韩亚洲欧美综合| 国产亚洲精久久久久久| 亚洲精品视频二区| 国产视频久久| 亚洲国产精品嫩草影院| 国产精品久久中文| 欧美高清在线| 好吊色欧美一区二区三区四区| 欧美黄色aa电影| 国产精品久久久亚洲一区| 狂野欧美激情性xxxx欧美| 欧美日韩国产不卡在线看| 欧美高清在线视频| 国产精品久久久一区二区| 亚洲国产精品va| 在线中文字幕日韩| 亚洲国产导航| 亚洲综合日韩中文字幕v在线| 在线看片日韩| 亚洲永久免费视频| 日韩午夜av在线| 久久精品国产亚洲一区二区| 日韩午夜av| 韩国自拍一区| 影音先锋久久精品| 亚洲清纯自拍| 久久久精品一品道一区| 久久国产主播| 国产精品久久久一区麻豆最新章节| 理论片一区二区在线| 国产日产欧美精品| 伊人久久男人天堂| 中文av字幕一区| 亚洲毛片在线| 妖精视频成人观看www| 亚洲欧洲日韩在线| 久久视频一区二区| 久热精品在线视频| 嫩草影视亚洲| 精品成人久久| 久久久国产成人精品| 久久久人成影片一区二区三区观看| 欧美日本一区二区视频在线观看 | 欧美一区二区三区的| 狠色狠色综合久久| 欧美一区二区视频免费观看| 亚洲一区免费网站| 国产精品久久久久aaaa九色| 99国产精品一区| 亚洲一区免费观看| 欧美一区二区三区四区在线观看| 久久美女艺术照精彩视频福利播放| 国产精品日韩电影| 亚洲一区二区三区在线播放| 亚洲欧美日韩成人| 亚洲视频欧美视频| 亚洲国产mv| 亚洲欧洲精品成人久久奇米网| 欧美在线一级视频| 蜜桃av一区| 国产精品主播| 欧美一区二区高清在线观看| 久久九九国产精品| 亚洲国产日韩欧美综合久久| 美国三级日本三级久久99| 亚洲观看高清完整版在线观看| 亚洲美女精品一区| 国产精品成av人在线视午夜片| 亚洲精品影视| 亚洲一级电影| 久久久精品日韩欧美| 国产一区二区在线免费观看| 久久国产福利| 亚洲人成网站999久久久综合| 欧美一站二站| 亚洲大胆av| 国产精品超碰97尤物18| 欧美在线影院在线视频| 欧美成人免费大片| 亚洲综合日韩在线| 精品999在线观看| 欧美日韩视频在线一区二区| 亚洲国产91精品在线观看| 久久精品人人|