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

            superman

            聚精會神搞建設 一心一意謀發展
            posts - 190, comments - 17, trackbacks - 0, articles - 0
               :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

            Section 1.1 - Broken Necklace

            Posted on 2009-03-06 16:45 superman 閱讀(110) 評論(0)  編輯 收藏 引用 所屬分類: USACO
            code 1
             1 #include <iostream>
             2 
             3 using namespace std;
             4 
             5 int main()
             6 {
             7     freopen("beads.in""r", stdin);
             8     freopen("beads.out""w", stdout);
             9 
            10     int n;
            11     string s;
            12 
            13     cin >> n;
            14     cin >> s;
            15 
            16     for (int i = 0; i < n - 1; i++)
            17         s += s[i];
            18 
            19     int rec[1000= { 0 };
            20 
            21     for (int i = 0; i < 2 * n - 1; i++)
            22     {
            23         int p = i + 1char c = s[i];
            24         while (true)
            25         {
            26             if (p == 2 * n - 1)
            27                 break;
            28             if (c == 'w')
            29             {
            30                 if (s[p] != 'w')
            31                     c = s[p];
            32             }
            33             else
            34             {
            35                 if (s[p] != c && s[p] != 'w')
            36                     break;
            37             }
            38             p++;
            39         }
            40         rec[i] = p - i;
            41     }
            42 
            43     int ans = 0;
            44     for (int i = 0; i < 2 * n - 2; i++)
            45         ans >?= (rec[i] + rec[i + rec[i]]);
            46 
            47     cout << (ans > n ? n : ans) << endl;
            48 
            49     return 0;
            50 }
            51 

            code2
             1 #include <iostream>
             2 
             3 using namespace std;
             4 
             5 int main()
             6 {
             7     freopen("beads.in""r", stdin);
             8     freopen("beads.out""w", stdout);
             9 
            10     int n;
            11     string s;
            12 
            13     cin >> n;
            14     cin >> s;
            15 
            16     for (int i = 0; i < n - 1; i++)
            17         s += s[i];
            18 
            19     int leftRed[1000= { 0 }, rightRed[1000= { 0 };
            20     int leftBlue[1000= { 0 }, rightBlue[1000= { 0 };
            21 
            22     if (s[0== 'r') leftRed[0= 1;
            23     if (s[0== 'b') leftBlue[0= 1;
            24     if (s[0== 'w') leftRed[0= leftBlue[0= 1;
            25     if (s[2 * n - 2== 'r') rightRed[2 * n - 2= 1;
            26     if (s[2 * n - 2== 'b') rightBlue[2 * n - 2= 1;
            27     if (s[2 * n - 2== 'w') rightRed[2 * n - 2= rightBlue[2 * n - 2= 1;
            28 
            29     for (int i = 1; i < 2 * n - 1; i++)
            30     {
            31         if (s[i] == 'r')
            32         {
            33             leftRed[i] = leftRed[i - 1+ 1;
            34             leftBlue[i] = 0;
            35         }
            36         if (s[i] == 'b')
            37         {
            38             leftRed[i] = 0;
            39             leftBlue[i] = leftBlue[i - 1+ 1;
            40         }
            41         if (s[i] == 'w')
            42         {
            43             leftRed[i] = leftRed[i - 1+ 1;
            44             leftBlue[i] = leftBlue[i - 1+ 1;
            45         }
            46     }
            47 
            48     for (int i = 2 * n - 3; i >= 0; i--)
            49     {
            50         if (s[i] == 'r')
            51         {
            52             rightRed[i] = rightRed[i + 1+ 1;
            53             rightBlue[i] = 0;
            54         }
            55         if (s[i] == 'b')
            56         {
            57             rightRed[i] = 0;
            58             rightBlue[i] = rightBlue[i + 1+ 1;
            59         }
            60         if (s[i] == 'w')
            61         {
            62             rightRed[i] = rightRed[i + 1+ 1;
            63             rightBlue[i] = rightBlue[i + 1+ 1;
            64         }
            65     }
            66 
            67     int ans = 0;
            68     for (int i = 0; i < 2 * n - 2; i++)
            69     {
            70         int l = max(leftRed[i], leftBlue[i]);
            71         int r = max(rightRed[i + 1], rightBlue[i + 1]);
            72         ans >?= (l + r);
            73     }
            74 
            75     cout << (ans > n ? n : ans) << endl;
            76 
            77     return 0;
            78 }
            79 
            精品久久亚洲中文无码| 精品久久人人做人人爽综合| 囯产精品久久久久久久久蜜桃| 久久中文字幕精品| 久久久亚洲欧洲日产国码aⅴ| 97精品国产91久久久久久| 99精品久久久久久久婷婷| 无码人妻久久一区二区三区蜜桃| 日韩精品久久无码人妻中文字幕| AV无码久久久久不卡蜜桃| 久久午夜综合久久| 国产一区二区三区久久| 国内精品久久国产| 久久久久久亚洲精品无码| 国产美女久久精品香蕉69| 四虎影视久久久免费观看| 精品国产乱码久久久久久郑州公司| 欧美成a人片免费看久久| MM131亚洲国产美女久久| 国内精品久久久久影院亚洲| 国产一区二区三精品久久久无广告 | 久久久久亚洲av毛片大 | 国产∨亚洲V天堂无码久久久| 久久国产精品免费| 青青国产成人久久91网| 久久国产欧美日韩精品| 色播久久人人爽人人爽人人片AV| 久久91精品综合国产首页| 精品久久久久久综合日本| 久久w5ww成w人免费| 性做久久久久久久| 亚洲av日韩精品久久久久久a| 四虎国产精品成人免费久久| 无码任你躁久久久久久老妇| 国产精品熟女福利久久AV| 国产99精品久久| 香蕉久久夜色精品国产小说| 97久久精品无码一区二区天美| 亚洲精品无码久久久久去q| 精品国产99久久久久久麻豆| 亚洲精品国产字幕久久不卡|