• <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 閱讀(112) 評論(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 
            国产精品九九久久精品女同亚洲欧美日韩综合区 | 亚洲午夜精品久久久久久app| 久久99久久成人免费播放| 久久这里都是精品| 精品综合久久久久久888蜜芽| 久久综合狠狠综合久久激情 | 四虎影视久久久免费| 久久精品国产清高在天天线| 久久久精品波多野结衣| 久久亚洲精品国产精品| 精品久久久久久国产牛牛app| 亚洲色欲久久久综合网| 国产99久久久久久免费看| 亚洲欧美日韩中文久久| 久久天天躁狠狠躁夜夜不卡| 浪潮AV色综合久久天堂| 亚洲国产成人久久精品99| 色成年激情久久综合| 精品久久久久久无码中文字幕一区| 久久久久国产| 国产一区二区精品久久凹凸| 97久久国产亚洲精品超碰热| 久久久久av无码免费网 | 一本久久综合亚洲鲁鲁五月天亚洲欧美一区二区 | 久久免费的精品国产V∧ | 久久久青草久久久青草| 亚洲人成精品久久久久| 亚洲综合日韩久久成人AV| 亚洲国产成人久久精品99 | 无码任你躁久久久久久| 国产精品九九久久精品女同亚洲欧美日韩综合区| 99精品国产99久久久久久97 | 一级做a爰片久久毛片人呢| 久久久久亚洲av无码专区导航| 久久人妻AV中文字幕| 亚洲中文字幕久久精品无码喷水| 日韩欧美亚洲综合久久| 亚洲精品美女久久777777| 亚洲精品无码久久久影院相关影片| 久久久久人妻一区二区三区| 亚洲综合伊人久久综合|