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

            Why so serious? --[NKU]schindlerlee

            2009年12月25日星期五.sgu179

            2009年12月25日星期五.sgu179
            找一個合法的括號序列的下一個合法next_permutation
            我打了個表,標*的為正確的排列。
            我們發現在()()()()之后的都是非法序列,合法序列只占開始的一小部分。
            然后我就用next_permutation水了一下,就過了
            WindyWinter還介紹了一個找規律的方法: http://www.briefdream.com/sgu-179/
            http://m.shnenglu.com/schindlerlee/

            /*
            00001111 (((()))) *
            00010111 ((()())) *
            00011011 ((())()) *
            00011101 ((()))() *
            00011110 ((())))(
            00100111 (()(())) *
            00101011 (()()()) *
            00101101 (()())() *
            00101110 (()()))(
            00110011 (())(()) *
            00110101 (())()() *
            00110110 (())())(
            00111001 (()))(()
            00111010 (()))()(
            00111100 (())))((
            01000111 ()((())) *
            01001011 ()(()()) *
            01001101 ()(())() *
            01001110 ()(()))(
            01010011 ()()(()) *
            01010101 ()()()() *
            01010110 ()()())(
            01011001 ()())(()
            01011010 ()())()(
            01011100 ()()))((
            01100011 ())((())
            01100101 ())(()()
            01100110 ())(())(
            01101001 ())()(()
            01101010 ())()()(
            01101100 ())())((
            01110001 ()))((()
            01110010 ()))(()(
            01110100 ()))()((
            01111000 ())))(((
            10000111 )(((()))
            10001011 )((()())
            10001101 )((())()
            10001110 )((()))(
            10010011 )(()(())
            10010101 )(()()()
            10010110 )(()())(
            10011001 )(())(()
            10011010 )(())()(
            10011100 )(()))((
            10100011 )()((())
            10100101 )()(()()
            10100110 )()(())(
            10101001 )()()(()
            10101010 )()()()(
            10101100 )()())((
            10110001 )())((()
            10110010 )())(()(
            10110100 )())()((
            10111000 )()))(((
            11000011 ))(((())
            11000101 ))((()()
            11000110 ))((())(
            11001001 ))(()(()
            11001010 ))(()()(
            11001100 ))(())((
            11010001 ))()((()
            11010010 ))()(()(
            11010100 ))()()((
            11011000 ))())(((
            11100001 )))(((()
            11100010 )))((()(
            11100100 )))(()((
            11101000 )))()(((
            11110000 ))))((((
            */
             1 /*
             2  * SOUR:sgu179
             3  * ALGO:math
             4  * DATE: 2009年 12月 25日 星期五 16:22:44 CST
             5  * COMM:3 http://m.shnenglu.com/schindlerlee/
             6  * */
             7 #include<iostream>
             8 #include<cstdio>
             9 #include<cstdlib>
            10 #include<cstring>
            11 #include<algorithm>
            12 using namespace std;
            13 typedef long long LL;
            14 const int maxint = 0x7fffffff;
            15 const long long max64 = 0x7fffffffffffffffll;
            16 
            17 const int N = 10010;
            18 char s[N], last[N];
            19 int len;
            20 
            21 int judge()
            22     //1 right 0 false -1 exceed
            23 {
            24     int i;
            25     for(i = 0;i < len ;i++) {
            26         if(last[i] > s[i]) {
            27             break;
            28         }else if(last[i] < s[i]) {
            29             return -1;
            30         }
            31     }
            32     int top = 0;
            33     for(int i = 0;i < len;i++) {
            34         if(s[i] == '(') {
            35             top ++;
            36         }else {
            37             if(top > 0)
            38                 top --;
            39             else {
            40                 return 0;
            41             }
            42         }
            43     }
            44     return (top == 0);
            45 }
            46 
            47 int main()
            48 {
            49     int i,j,k;
            50     scanf("%s",s);
            51     len = strlen(s);
            52     for(i = 0;i < len;i++) {
            53         if(i & 1) {
            54             last[i] = ')';
            55         }else {
            56             last[i] = '(';
            57         }
            58     }
            59 
            60     next_permutation(s,s + len);
            61     while(1) {
            62         int r = judge();
            63         if(r == 0) {
            64             next_permutation(s,s + len);
            65         }else if(r == 1) {
            66             for(i = 0;i < len;i++) {
            67                 putchar(s[i]);
            68             }
            69             putchar(10);
            70             break;
            71         }else {
            72             printf("No solution\n");
            73             break;
            74         }
            75     }
            76     return 0;
            77 }
            78 
            79 
            80 


            posted on 2009-12-25 17:15 schindlerlee 閱讀(981) 評論(0)  編輯 收藏 引用 所屬分類: 解題報告

            久久99热狠狠色精品一区| 国产亚洲美女精品久久久| 欧洲成人午夜精品无码区久久| 亚洲第一极品精品无码久久| 999久久久无码国产精品| 国产成人精品久久| 久久人做人爽一区二区三区| 九九99精品久久久久久| 思思久久99热免费精品6| 国产精品一区二区久久| 色青青草原桃花久久综合| 精品精品国产自在久久高清| 免费无码国产欧美久久18| 亚洲国产二区三区久久| 久久久久亚洲av综合波多野结衣| 成人精品一区二区久久| 色欲久久久天天天综合网精品| 久久精品国产亚洲Aⅴ蜜臀色欲| 国产情侣久久久久aⅴ免费| 日韩亚洲国产综合久久久| 国产精品免费看久久久香蕉| 99久久久国产精品免费无卡顿| 久久精品桃花综合| 久久无码一区二区三区少妇| 久久免费视频观看| 97精品国产91久久久久久| 人妻无码αv中文字幕久久琪琪布| 亚洲精品午夜国产va久久| 美女久久久久久| 久久久久亚洲AV成人网| 狠狠色综合网站久久久久久久| 亚洲综合婷婷久久| 久久精品国产精品亜洲毛片| 精品国产综合区久久久久久| 精品久久久久久无码中文字幕| 久久综合九色综合久99| 国产激情久久久久影院老熟女免费 | 久久久精品2019免费观看| 久久精品国产亚洲av麻豆色欲 | 人妻中文久久久久| 久久成人小视频|