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

            <2011年1月>
            2627282930311
            2345678
            9101112131415
            16171819202122
            23242526272829
            303112345

            導航

            統計

            公告

            統計系統

            留言簿(1)

            隨筆分類(227)

            文章分類(2)

            OJ

            最新隨筆

            搜索

            積分與排名

            最新評論

            閱讀排行榜

            国产精品亚洲美女久久久| 久久久久女人精品毛片| 久久精品国产一区二区| 欧美日韩精品久久久久| 久久无码国产专区精品| 精品国产乱码久久久久久1区2区 | 欧美一区二区久久精品| 波多野结衣AV无码久久一区| 国产午夜免费高清久久影院| 狠狠色综合久久久久尤物| 久久久久国产精品人妻| yellow中文字幕久久网| 久久久久国产精品嫩草影院| 国产日韩久久免费影院| 狠狠色综合网站久久久久久久高清 | 国产精品久久久99| 久久99久久99精品免视看动漫| 日韩精品国产自在久久现线拍| 久久狠狠爱亚洲综合影院| 情人伊人久久综合亚洲| 久久久久国产精品熟女影院| 色偷偷88欧美精品久久久| 99久久无色码中文字幕| 色诱久久久久综合网ywww| 久久99精品久久久久久噜噜 | 久久婷婷色综合一区二区| 久久婷婷综合中文字幕| 精品国产乱码久久久久久1区2区 | 色婷婷综合久久久久中文一区二区| 久久伊人亚洲AV无码网站| 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 国产精品综合久久第一页| 7777久久亚洲中文字幕| 久久久久亚洲AV无码永不| 狠狠色综合网站久久久久久久高清| 色偷偷91久久综合噜噜噜噜| 午夜肉伦伦影院久久精品免费看国产一区二区三区 | 久久精品午夜一区二区福利| 99久久国产宗和精品1上映| 性欧美大战久久久久久久久| 亚洲人成网亚洲欧洲无码久久|