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

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

            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 
            久久久久国产一区二区| 久久免费高清视频| 久久久久女人精品毛片| 精品久久8x国产免费观看| 99久久国产热无码精品免费久久久久| 性高湖久久久久久久久| 久久精品免费网站网| 中文字幕乱码人妻无码久久| 久久e热在这里只有国产中文精品99 | 精品久久久久久无码人妻蜜桃| 色播久久人人爽人人爽人人片aV| 亚洲精品午夜国产VA久久成人| 久久乐国产精品亚洲综合| 亚洲乱亚洲乱淫久久| 国产91色综合久久免费分享| 精品一二三区久久aaa片| 久久亚洲2019中文字幕| 亚洲国产精品综合久久一线| 精品久久久久久无码不卡| 国产精自产拍久久久久久蜜| 99久久人人爽亚洲精品美女| 91精品久久久久久无码| 久久国产福利免费| 久久久久久免费视频| 亚洲精品高清国产一线久久| 婷婷久久久亚洲欧洲日产国码AV| 久久无码人妻一区二区三区| 青青草国产精品久久| 久久水蜜桃亚洲av无码精品麻豆| 国产成人精品白浆久久69| 手机看片久久高清国产日韩 | 狠狠色丁香婷综合久久| 91精品国产高清久久久久久国产嫩草| 久久强奷乱码老熟女网站| 久久久久亚洲av成人网人人软件 | 亚洲愉拍99热成人精品热久久 | 亚洲欧美一区二区三区久久| 亚洲精品国精品久久99热一| 青青热久久国产久精品| 久久久久噜噜噜亚洲熟女综合| 精品久久久噜噜噜久久久|