• <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  回復  更多評論
              
            亚洲国产精品无码久久久蜜芽 | 囯产极品美女高潮无套久久久 | 久久精品免费观看| 久久久久人妻一区精品色 | 久久成人国产精品| 精品一区二区久久久久久久网站| 国内精品久久久久久野外| 国产成人AV综合久久| 国产偷久久久精品专区| 国产精品久久久久…| 日本精品久久久久久久久免费| 久久综合狠狠综合久久| 久久精品国产一区二区电影| 久久99精品久久久大学生| 国产成人精品久久二区二区 | 日产精品久久久一区二区| 久久香蕉综合色一综合色88| 麻豆精品久久久久久久99蜜桃 | 久久精品中文无码资源站| 99国产欧美久久久精品蜜芽 | 97r久久精品国产99国产精| 思思久久99热只有频精品66| 亚洲乱亚洲乱淫久久| 国产产无码乱码精品久久鸭| 四虎国产精品成人免费久久| 狠狠久久综合| 久久精品这里热有精品| 国色天香久久久久久久小说| 天天影视色香欲综合久久| 婷婷综合久久中文字幕| 久久精品国产亚洲网站| 国产精品一区二区久久国产| 亚洲狠狠婷婷综合久久蜜芽 | 久久人人爽人人爽AV片| 狠狠色伊人久久精品综合网| 久久精品这里热有精品| 欧美777精品久久久久网| 欧美亚洲另类久久综合| 国产亚州精品女人久久久久久| 日本久久久精品中文字幕| 97久久精品人妻人人搡人人玩|