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

            pku1335 Digital Onion 遞歸

            題意:
            定義括號序列:
            Definition: Null parenthesis is a DO. Especially, we call this the Null DO. 
            Definition: "( )" is a DO. Especially, we call this the primitive DO. 
            Definition: If both A and B are DOs, then the combined form of "(A)B" is also a DO, where we call A the inside of the DO and B the outside of the DO. 
            定義排序規則:
            [Rule1]: The more weight, the more expensive. 
            [Rule2]: If the weights of two DOs are equal, then the price depends on the inside DO of the two DOs. 
            [Rule3]: If the weights of two DOs are the same and the prices of the inside DOs are equal, then the price depends on the outside DO of the two DOs. 
            給出一個符號序列,求這個之后的一個符號序列是什么

            思路:
            首先要確定最小的符號序列為:()()()...
            然后就是轉化方法:
            對于一個符號序列(inside)outside,首先看outside能否+1,不行的話看inside能否+1,同時將outside置為最小值形式,再不行的話當outside不為空的時候將inside的weight+1,outside's weight-1,將兩部分都轉化為最小值形式。
            以上描述的是一個遞歸過程~當然,考慮一種特殊情況,如果整個式子無法進行+1操作,只能將整個式子的weight+1,然后化為最小值形式。

            發現java的string竟然是值傳遞,非常的蛋疼。。我喜歡java的String,沒辦法,只好用C++的string。。。這種字符串處理的題目string是非常給力的~

            代碼:
             1# include <iostream>
             2# include <string>
             3# include <cstring>
             4using namespace std;
             5string str;
             6void make(int s,int e,int type)
             7{
             8    int c=0;
             9    for(int i=s;i<e;i++)
            10        if(str[i]=='(')
            11            c++;
            12    c+=type;
            13    string res="";
            14    for(int i=0;i<c;i++) res+="()";
            15    str=str.substr(0,s)+res+str.substr(e,str.length()-e);
            16}

            17bool solve(int s,int e)
            18{
            19    if(s==e) return false;
            20    else
            21    {
            22        int c=-1,end;
            23        for(end=s+1;end<e&&c;end++)
            24            switch(str[end])
            25            {
            26            case '(':c--;break;
            27            case ')':c++;break;
            28            }
            ;
            29        if(solve(end,e)) return true;
            30        else if(solve(s+1,end-1))
            31        {
            32            make(end,e,0);
            33            return true;
            34        }

            35        else if(end!=e)
            36        {
            37            make(end,e,-1);
            38            make(s+1,end-1,1);
            39            return true;
            40        }

            41        else return false;
            42    }

            43}

            44int main()
            45{
            46    int test;
            47    cin>>test;
            48    while(test--)
            49    {
            50        str.clear();
            51        while(true)
            52        {
            53            string tmp;
            54            cin>>tmp;
            55            if(tmp=="$"break;
            56            str+=tmp;
            57        }

            58        if(!solve(0,str.length())) make(0,str.length(),1);
            59        for(int i=0;i<str.length();i++)
            60            cout<<str[i]<<" ";
            61        cout<<"$"<<endl;
            62    }

            63    return 0;
            64}

            posted on 2011-01-25 01:01 yzhw 閱讀(258) 評論(0)  編輯 收藏 引用 所屬分類: DP

            <2010年11月>
            31123456
            78910111213
            14151617181920
            21222324252627
            2829301234
            567891011

            導航

            統計

            公告

            統計系統

            留言簿(1)

            隨筆分類(227)

            文章分類(2)

            OJ

            最新隨筆

            搜索

            積分與排名

            最新評論

            閱讀排行榜

            国产精品久久久久国产A级| 久久乐国产精品亚洲综合| 人妻无码αv中文字幕久久| 无码AV波多野结衣久久| 久久久久久久综合日本亚洲| 国产精品一区二区久久精品无码| 亚洲精品99久久久久中文字幕| 麻豆久久久9性大片| 无码精品久久久天天影视| 久久99国产精品久久99| 亚洲中文精品久久久久久不卡| 97精品久久天干天天天按摩| 久久亚洲国产成人精品无码区| 狠狠色丁香久久婷婷综| 中文字幕无码av激情不卡久久| 精品久久久久久99人妻| 久久婷婷五月综合国产尤物app| 一级做a爰片久久毛片免费陪| 久久久久久人妻无码| 久久综合狠狠综合久久97色| 伊人久久大香线蕉综合影院首页| 国内精品久久久久久不卡影院| 国产精品99久久久精品无码| 久久精品国产一区二区三区不卡 | 大香网伊人久久综合网2020| 国产精品久久久久免费a∨| 精品久久久久久无码免费| 996久久国产精品线观看| 精品免费久久久久久久| 久久人与动人物a级毛片| 久久国产精品一区| 国产高清国内精品福利99久久| 思思久久精品在热线热| 色婷婷狠狠久久综合五月| 久久国产精品久久| 国产精品久久国产精麻豆99网站| 久久婷婷五月综合国产尤物app| 中文字幕成人精品久久不卡| 国产精品一久久香蕉产线看| 精品少妇人妻av无码久久| 国产成人精品免费久久久久|