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

            最新隨筆

            搜索

            積分與排名

            最新評論

            閱讀排行榜

            青青青青久久精品国产| 亚洲色婷婷综合久久| 久久国产精品免费一区| 青青久久精品国产免费看| 色88久久久久高潮综合影院| 久久久久综合网久久| 思思久久99热只有频精品66| 热久久国产精品| 久久精品国产久精国产思思| 性高湖久久久久久久久AAAAA| 久久婷婷国产综合精品| 久久丝袜精品中文字幕| 久久国产精品一国产精品金尊| 青青热久久国产久精品| 99久久精品免费| 国产精品久久久久AV福利动漫| 久久亚洲精品国产亚洲老地址| 亚洲国产精品久久久久婷婷老年| 久久精品国产99久久久古代| 久久青青国产| 久久精品国产亚洲Aⅴ香蕉| 精品国产乱码久久久久久郑州公司 | 久久久久亚洲av成人无码电影 | 国内精品欧美久久精品| 国内精品伊人久久久久av一坑| 伊人伊成久久人综合网777| 精品久久久无码中文字幕| 亚洲狠狠久久综合一区77777| 国内精品人妻无码久久久影院 | 欧美性大战久久久久久| 久久久久国产精品嫩草影院| 国产午夜精品久久久久九九电影| 日本久久久久久中文字幕| 精品综合久久久久久97超人| 久久成人国产精品二三区| 久久国产精品成人免费| 精品999久久久久久中文字幕 | 久久久久亚洲av无码专区喷水| 日韩人妻无码一区二区三区久久 | 久久99国产精品久久| 成人a毛片久久免费播放|