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

            PKU 3854 搜索、然后進(jìn)行類似拓?fù)渑判虻奶幚?/a>

            這題大意是一堆積木,抽掉某一塊后會(huì)使得上面的積木崩潰(當(dāng)上面的積木僅僅與抽去的部分相鄰),問(wèn)抽去哪塊積木會(huì)使得崩塌的總積木數(shù)最多
            這題做法是先將積木處理成圖的節(jié)點(diǎn),然后如果假設(shè)底下的積木i與上面的積木j直接相鄰面為k,則將i與j連接條權(quán)值為k的邊,然后針對(duì)每一塊積木枚舉求崩潰的總塊數(shù),這里用類似拓?fù)渑判蛩惴ǖ奶幚恚瑢⒚總€(gè)節(jié)點(diǎn)底面與其他面的接觸面數(shù)作為該節(jié)點(diǎn)的“入度”

             1# include <iostream>
             2using namespace std;
             3# include <cstdio>
             4# include <map>
             5# include <cstring>
             6# include <vector>
             7# include <queue>
             8char g[101][101];
             9int id[101][101];
            10int n,m,c;
            11# define max(a,b) ((a)>(b)?(a):(b))
            12struct
            13{
            14    int r,c,len;
            15}
            block[10001];
            16int main()
            17{
            18    while(true)
            19    {
            20        scanf("%d%d",&n,&m);
            21        if(!n&&!m) break;
            22        for(int i=0;i<n;i++)
            23            scanf("%s",g[i]);
            24        c=0;
            25        for(int i=0;i<n;i++)
            26            for(int j=0;j<m;)
            27            {
            28                if(g[i][j]=='0')
            29                {
            30                    j++;
            31                    continue;
            32                }

            33                block[c].r=i;
            34                block[c].c=j;
            35                block[c].len=g[i][j]-'0';
            36                for(int k=j;k<block[c].len+j;k++)
            37                     id[i][k]=c;
            38                j+=block[c++].len;
            39            }

            40        int degree[10001];
            41        int res=0;
            42        queue<int> q;
            43        int stddegree[10001];
            44        for(int i=0;i<c;i++)
            45        {
            46            stddegree[i]=block[i].len;
            47            if(block[i].r+1!=n)
            48                for(int j=block[i].c;j<block[i].c+block[i].len;j++)
            49                    if(g[block[i].r+1][j]=='0')
            50                        stddegree[i]--;
            51        }

            52        for(int i=0;i<c;i++)
            53        {
            54
            55            int ans=0;
            56            memcpy(degree,stddegree,sizeof(degree));
            57            q.push(i);
            58            while(!q.empty())
            59            {
            60                int top=q.front();
            61                q.pop();
            62                ans+=block[top].len;
            63                if(block[top].r!=0)
            64                    for(int j=block[top].c;j<block[top].c+block[top].len;j++)
            65                    if(g[block[top].r-1][j])
            66                    {
            67                        degree[id[block[top].r-1][j]]--;
            68                        if(!degree[id[block[top].r-1][j]])
            69                            q.push(id[block[top].r-1][j]);
            70                    }

            71            }

            72            res=max(res,ans);
            73        }

            74        printf("%d\n",res);
            75
            76
            77    }

            78    return 0;
            79}

            80
            81
            82

            posted on 2010-10-14 18:13 yzhw 閱讀(206) 評(píng)論(0)  編輯 收藏 引用 所屬分類: searchgraph

            <2011年1月>
            2627282930311
            2345678
            9101112131415
            16171819202122
            23242526272829
            303112345

            導(dǎo)航

            統(tǒng)計(jì)

            公告

            統(tǒng)計(jì)系統(tǒng)

            留言簿(1)

            隨筆分類(227)

            文章分類(2)

            OJ

            最新隨筆

            搜索

            積分與排名

            最新評(píng)論

            閱讀排行榜

            久久亚洲国产成人影院网站| 热RE99久久精品国产66热| 色老头网站久久网| 久久久久久国产精品美女| 久久这里只有精品18| 韩国无遮挡三级久久| 久久久久久无码国产精品中文字幕| 日本高清无卡码一区二区久久| 女人高潮久久久叫人喷水| 久久国产亚洲高清观看| 久久人人爽人人精品视频| 久久精品国产亚洲av影院| 久久露脸国产精品| 99久久免费国产精精品| 午夜精品久久久久久影视riav | 久久亚洲中文字幕精品一区| 国产精品禁18久久久夂久| 久久久久亚洲av成人无码电影 | 日本加勒比久久精品| .精品久久久麻豆国产精品| 一极黄色视频久久网站| 色综合久久最新中文字幕| 少妇人妻88久久中文字幕| 久久亚洲精品无码播放| 国内精品久久久久影院日本| 久久婷婷国产剧情内射白浆| 国产亚州精品女人久久久久久 | 久久se这里只有精品| 2022年国产精品久久久久| 亚洲精品无码久久久久久| 久久久久久综合网天天| 久久精品国产精品亚洲人人 | 丰满少妇人妻久久久久久4| 午夜精品久久久久久久| 精品国产一区二区三区久久蜜臀| 亚洲精品国产自在久久| 久久精品亚洲男人的天堂| 国产伊人久久| 一本大道加勒比久久综合| 国内精品久久九九国产精品| 亚洲伊人久久大香线蕉综合图片|