• <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 
            亚洲午夜无码久久久久小说| 亚洲综合伊人久久大杳蕉| 亚洲AV无码久久精品色欲| 亚洲va久久久噜噜噜久久男同| 亚洲AV无码久久精品成人| 国产精品一区二区久久精品| 久久久青草青青国产亚洲免观| 热久久最新网站获取| 久久免费线看线看| 久久久久免费精品国产| 91精品免费久久久久久久久| 要久久爱在线免费观看| 97久久精品人人澡人人爽| 久久精品国产亚洲AV香蕉| 国产精品亚洲综合专区片高清久久久| 国产精品99久久久久久宅男小说| 精品久久久久久中文字幕| 色偷偷久久一区二区三区| 久久久久无码精品| 91精品国产91久久久久久青草| 久久人人爽人人爽人人片AV麻烦| 久久精品成人影院| 国产成人精品久久亚洲| 999久久久免费国产精品播放| 人妻无码αv中文字幕久久| 久久中文字幕人妻丝袜| 无码人妻少妇久久中文字幕| 国内精品伊人久久久久影院对白| 99久久久精品免费观看国产| 久久亚洲AV成人无码电影| 欧美精品乱码99久久蜜桃| 亚洲七七久久精品中文国产| 久久毛片免费看一区二区三区| 国产精品女同一区二区久久| 99久久无码一区人妻| 99久久夜色精品国产网站| 99久久99久久精品国产片果冻| 青草影院天堂男人久久| 精品久久久久久国产免费了| 久久国产精品一区| 国产精品美女久久福利网站|