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

            題意:
            定義括號(hào)序列:
            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. 
            定義排序規(guī)則:
            [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. 
            給出一個(gè)符號(hào)序列,求這個(gè)之后的一個(gè)符號(hào)序列是什么

            思路:
            首先要確定最小的符號(hào)序列為:()()()...
            然后就是轉(zhuǎn)化方法:
            對(duì)于一個(gè)符號(hào)序列(inside)outside,首先看outside能否+1,不行的話(huà)看inside能否+1,同時(shí)將outside置為最小值形式,再不行的話(huà)當(dāng)outside不為空的時(shí)候?qū)nside的weight+1,outside's weight-1,將兩部分都轉(zhuǎn)化為最小值形式。
            以上描述的是一個(gè)遞歸過(guò)程~當(dāng)然,考慮一種特殊情況,如果整個(gè)式子無(wú)法進(jìn)行+1操作,只能將整個(gè)式子的weight+1,然后化為最小值形式。

            發(fā)現(xiàn)java的string竟然是值傳遞,非常的蛋疼。。我喜歡java的String,沒(méi)辦法,只好用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) 評(píng)論(0)  編輯 收藏 引用 所屬分類(lèi): DP

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

            導(dǎo)航

            統(tǒng)計(jì)

            公告

            統(tǒng)計(jì)系統(tǒng)

            留言簿(1)

            隨筆分類(lèi)(227)

            文章分類(lèi)(2)

            OJ

            最新隨筆

            搜索

            積分與排名

            最新評(píng)論

            閱讀排行榜

            久久国产热精品波多野结衣AV| 香蕉久久夜色精品升级完成| 熟妇人妻久久中文字幕| 亚洲欧美日韩久久精品| 精品久久久久久久中文字幕| 久久99精品国产| 久久国产精品-国产精品| 国产精品久久精品| 国产一区二区三区久久| 久久成人精品视频| 国产精品免费久久久久久久久| 伊人久久大香线蕉影院95| 久久99久久99小草精品免视看 | 久久久精品一区二区三区| WWW婷婷AV久久久影片| 国内精品人妻无码久久久影院 | 精品久久久久国产免费| 久久99精品久久久久久9蜜桃| 久久久综合香蕉尹人综合网| 欧美日韩精品久久久免费观看| 亚洲а∨天堂久久精品| 国产美女亚洲精品久久久综合| 一本一本久久a久久综合精品蜜桃| 日韩精品久久无码人妻中文字幕| 久久人妻少妇嫩草AV无码专区| 国产亚洲精品美女久久久| 97久久精品人人做人人爽| 无码乱码观看精品久久| 国内精品伊人久久久久777| 99久久国产综合精品麻豆| 7国产欧美日韩综合天堂中文久久久久 | 亚洲午夜精品久久久久久人妖| 久久精品国产只有精品2020| 久久青青草原精品国产软件| 久久人人爽人人人人片av| 69SEX久久精品国产麻豆| 国内精品久久久久久久影视麻豆| 亚洲美日韩Av中文字幕无码久久久妻妇| 久久久无码精品亚洲日韩京东传媒| 久久国产热精品波多野结衣AV| 国内精品伊人久久久久影院对白|