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

            USACO 2.1 The Castle

            用Floodfill來(lái)給每個(gè)module著色,統(tǒng)計(jì)一下各種顏色的module數(shù)目。
            在拆墻的時(shí)候,由于要求最南和最西的,從下向上,從左到右找,這樣就可以滿足條件。
            拆墻的時(shí)候,如果墻兩邊的顏色不一樣,則相加看是否最大。比最大值大則更新相應(yīng)信息。

            #include?<iostream>
            #include?
            <fstream>

            using?namespace?std;

            ifstream?fin(
            "castle.in");
            ofstream?fout(
            "castle.out");

            #ifdef?_DEBUG
            #define?out?cout
            #define?in?cin
            #else
            #define?out?fout
            #define?in?fin
            #endif

            int?n,m;
            int?c[50*50];
            int?data[50][50];
            int?colors[50][50];
            int?color_cnt;

            const?int?W?=?1;
            const?int?N?=?2;
            const?int?E?=?4;
            const?int?S?=?8;

            void?color(int?i,int?j,int?color);

            void?solve()
            {
            ????
            in>>m>>n;
            ????
            ????memset(c,
            0,sizeof(0));
            ????memset(colors,
            -1,sizeof(colors));

            ????color_cnt?
            =?0;

            ????
            for(int?i=0;i<n;++i)
            ????????
            for(int?j=0;j<m;++j){
            ????????????
            in>>data[i][j];
            ????????}

            ????
            for(int?i=0;i<n;++i)
            ????????
            for(int?j=0;j<m;++j){
            ????????????
            if(colors[i][j]==-1){
            ????????????????color(i,j,color_cnt
            ++);
            ????????????}
            ????????}

            ????
            out<<color_cnt<<endl;

            ????
            int?largest?=?INT_MIN;

            ????
            for(int?i=0;i<color_cnt;++i){
            ????????largest?
            =?max(largest,c[i]);
            ????}


            ????
            out<<largest<<endl;

            ????largest?
            =?INT_MIN;
            ????
            int?walli,wallj;
            ????
            char?dir;

            ?????
            for(int?j=0;j<m;++j)
            ????????
            for(int?i=n-1;i>=0;--i)
            ????????{
            ?????????????
            if(i-1>=0){
            ????????????????
            if(?colors[i][j]!=colors[i-1][j]){
            ????????????????????
            if(?largest<c[colors[i][j]]+c[colors[i-1][j]]){
            ????????????????????????largest
            =c[colors[i][j]]+c[colors[i-1][j]];
            ????????????????????????walli?
            =?i;
            ????????????????????????wallj?
            =?j;
            ????????????????????????dir?
            =?'N';
            ????????????????????}
            ????????????????}
            ????????????}

            ????????????
            if(j+1<m){
            ????????????????
            if(?colors[i][j]!=colors[i][j+1]){
            ????????????????????
            if(largest<c[colors[i][j]]+c[colors[i][j+1]]){
            ????????????????????????largest?
            =?c[colors[i][j]]+c[colors[i][j+1]];
            ????????????????????????walli?
            =?i;
            ????????????????????????wallj?
            =?j;
            ????????????????????????dir?
            =?'E';
            ????????????????????}
            ????????????????}
            ????????????}

            ???????}

            ????
            out<<largest<<endl;
            ????
            out<<walli+1<<'?'<<wallj+1<<'?'<<dir<<endl;

            }

            void?color(int?i,int?j,int?clr)
            {
            ???
            if(colors[i][j]!=-1)
            ??????
            return;

            ????colors[i][j]?
            =?clr;?
            ????c[clr]
            ++;

            ????
            if((data[i][j]&S)==0&&(i+1<n)){
            ??????color(i
            +1,j,clr);?
            ????}

            ????
            if((data[i][j]&E)==0&&(j+1<m)){
            ????????color(i,j
            +1,clr);
            ????}

            ????
            if((data[i][j]&W)==0&&(j-1>=0)){
            ????????color(i,j
            -1,clr);
            ????}

            ????
            if((data[i][j]&N)==0&&(i-1>=0)){
            ????????color(i
            -1,j,clr);
            ????}
            }

            int?main(int?argc,char?*argv[])
            {
            ????solve();?
            ????
            return?0;
            }



            Compiling...
            Compile: OK

            Executing...
            Test 1: TEST OK [0.000 secs, 2868 KB]
            Test 2: TEST OK [0.022 secs, 2868 KB]
            Test 3: TEST OK [0.000 secs, 2868 KB]
            Test 4: TEST OK [0.000 secs, 2868 KB]
            Test 5: TEST OK [0.000 secs, 2868 KB]
            Test 6: TEST OK [0.000 secs, 2872 KB]
            Test 7: TEST OK [0.000 secs, 2872 KB]
            Test 8: TEST OK [0.011 secs, 2868 KB]

            All tests OK.

            posted on 2009-06-17 23:49 YZY 閱讀(1213) 評(píng)論(0)  編輯 收藏 引用 所屬分類(lèi): AlgorithmUSACO

            導(dǎo)航

            <2009年6月>
            31123456
            78910111213
            14151617181920
            21222324252627
            2829301234
            567891011

            統(tǒng)計(jì)

            常用鏈接

            留言簿(2)

            隨筆分類(lèi)

            隨筆檔案

            搜索

            積分與排名

            最新評(píng)論

            閱讀排行榜

            久久久久亚洲AV无码永不| 久久成人影院精品777| 国产99久久精品一区二区| 国产一区二区久久久| 久久精品国产99国产精品| 免费观看成人久久网免费观看| 国产综合久久久久久鬼色| 日韩精品无码久久久久久| 亚洲国产精品无码久久久不卡| 午夜精品久久久久久影视777 | 精品久久久久久久无码| 2021久久精品免费观看| 99久久免费国产精品特黄| 国内精品久久久久影院老司| 无码八A片人妻少妇久久| 思思久久99热只有频精品66| 久久婷婷五月综合色奶水99啪| 国产精品久久久久久久人人看| 久久久久波多野结衣高潮| 久久香综合精品久久伊人| 热re99久久精品国99热| 国产精品久久久久久影院 | 国产三级久久久精品麻豆三级| 亚洲狠狠婷婷综合久久蜜芽| 国产午夜福利精品久久2021| 久久99精品国产99久久6男男| 国产AV影片久久久久久| 久久久久99这里有精品10| 久久人人爽爽爽人久久久| 狠狠狠色丁香婷婷综合久久五月| 精品国产青草久久久久福利 | 色综合久久88色综合天天 | 久久精品久久久久观看99水蜜桃 | 久久91亚洲人成电影网站| 国内精品久久久久久久影视麻豆| 久久综合色之久久综合| 亚洲级αV无码毛片久久精品| 久久青青草原综合伊人| 久久www免费人成看片| 99久久99久久精品国产片| 久久精品国产亚洲AV影院|