• <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>
            算法學社
            記錄難忘的征途
            posts - 141,comments - 220,trackbacks - 0
            250pt
               定義大小為N的三角形, 是由若干個等大的圓形構成的, 高度和底寬為N.
               三角形的每個圓染三種顏色 r,g,b,相接觸的圓不能染同種顏色.
               問有R個r顏色的球, G個g顏色的球和B個b顏色的球, 最多能染多少個大小為N的三角形.
               r+g+b不爆long long, N不爆int
            算法分析:
               不會

            500pt:
               大小為n*m(n,m<30)的矩陣, 有L,P,.,三種格子, 畫兩個互不相交的矩形, 使兩個矩形L和P的差不超過D, 問這兩個矩形最多能包含的L和P的和.

            算法分析:
               暴力的話是n^8, GG
               不難想到, 兩個矩形之間要么可以劃一條水平分割線, 要么可以畫一條豎直分割線. 
               于是預處理所有的分割線,左右側差為d的最多包含的L和P. 預處理過程是O(n^6).
               然后枚舉兩個矩形的L和P的差, 再枚舉分割線, 復雜度O(n^5).
               
               預處理的常數非常小, 極限數據1s出解.

             1 #include<vector>
             2 #include<string>
             3 #include<iostream>
             4 #include<cstring>
             5 using namespace std;
             6 int col[35][2005][2];
             7 int row[35][2005][2];
             8 const int inf = ~0u>>2;
             9 inline void chkmax(int &a,const int& b) {
            10     if(a < b) a = b;
            11 }
            12 class FoxAndFlowerShopDivOne{
            13     public : int theMaxFlowers(vector <string> num, int maxDiff){
            14         int n = num.size(), m = num[0].size();
            15         for(int i = 0; i <35;i++)
            16             for(int j = 0; j<2005; j++)
            17                 for(int p = 0; p<2;p++)
            18                     col[i][j][p] = row[i][j][p] = -inf;
            19         for(int i = 0; i< n; i++)
            20             for(int j  = 0; j< m; j++)
            21                 for(int x = 0; x<= i; x++)
            22                     for(int y = 0; y<= j; y++){
            23                         int suml = 0, sump = 0;
            24                         for(int p = x; p <= i; p++) for(int q = y ; q <= j; q++) suml += num[p][q] == 'L', sump += num[p][q] == 'P';
            25                         int sum = suml+sump;
            26                         int tmp = suml - sump + 1000;
            27                         chkmax(row[i][tmp][0], sum);
            28                         chkmax(row[x][tmp][1], sum);
            29                         chkmax(col[j][tmp][0], sum);
            30                         chkmax(col[y][tmp][1], sum);
            31                     }
            32         for(int j = 0; j< 2005; j++){
            33             for(int i = 1; i< n; i++)
            34                 chkmax(row[i][j][0],row[i-1][j][0]);
            35             for(int i = n-2; i>=0; i--)
            36                 chkmax(row[i][j][1],row[i+1][j][1]);
            37             for(int i = 1; i< m; i++)
            38                 chkmax(col[i][j][0],col[i-1][j][0]);
            39             for(int i= m-2; i>=0; i--)
            40                 chkmax(col[i][j][1],col[i+1][j][1]);
            41         }
            42         int ans = -1;
            43         for(int i = - n*m; i<=n*m; i++)
            44             for(int j = -n*m; j<=n*m; j++) if(abs(i+j) <= maxDiff) {
            45                 for(int r = 0; r< n-1; r++){
            46                     chkmax(ans, row[r][i+1000][0] + row[r+1][j+1000][1]);
            47                 }
            48                 for(int c = 0; c< m-1; c++)
            49                     chkmax(ans, col[c][i+1000][0] + col[c+1][j+1000][1]);
            50             }
            51         return ans;
            52     }
            53 };
            posted on 2012-08-17 13:17 西月弦 閱讀(400) 評論(1)  編輯 收藏 引用 所屬分類: 解題報告

            FeedBack:
            # re: topcoder srm 552 div1 比賽小記
            2012-08-17 22:16 | wu
            我找規律過的- -,n%3==0 || n%3==2時,前n行三種顏色的球的數量是相同的,n%3==1的時候就是最頂上球的那種顏色多了一種
            http://blog.csdn.net/haha593572013/article/details/7876600  回復  更多評論
              
            人妻无码精品久久亚瑟影视| 久久久久久久91精品免费观看| 青草国产精品久久久久久| 一本色道久久88精品综合| 国产91色综合久久免费分享| 久久无码国产| 日日躁夜夜躁狠狠久久AV| 18岁日韩内射颜射午夜久久成人| 区亚洲欧美一级久久精品亚洲精品成人网久久久久 | 精品久久久久久无码不卡| 久久免费的精品国产V∧| 久久成人国产精品一区二区| 亚洲精品美女久久777777| 精品多毛少妇人妻AV免费久久| 久久无码专区国产精品发布| 91超碰碰碰碰久久久久久综合| 亚洲国产一成人久久精品| 久久久久人妻一区精品| 久久久青草青青亚洲国产免观| 午夜精品久久久久久影视riav| 91麻豆精品国产91久久久久久| 亚洲午夜久久久久妓女影院| 日本国产精品久久| 国产精品成人99久久久久91gav| 久久精品无码专区免费青青| 97久久国产综合精品女不卡| 久久久久亚洲AV无码专区网站| 久久精品国产99国产精品澳门| 人妻无码αv中文字幕久久| 色天使久久综合网天天| 色婷婷久久综合中文久久一本| 久久久久99精品成人片牛牛影视| 久久精品国产亚洲网站| 久久香蕉一级毛片| 亚洲综合精品香蕉久久网97| 久久综合久久综合久久| 青青草原1769久久免费播放| 欧美777精品久久久久网| 国产精品九九久久精品女同亚洲欧美日韩综合区 | 亚洲午夜久久久精品影院| 久久精品毛片免费观看|