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

            置頂隨筆


            http://acm.pku.edu.cn/JudgeOnline/problem?id=2085
             

            給定整數(shù)N,和一個序列的逆序數(shù)M,求以1,2...N為元素,逆序為M,且按字典序最小的那個序列。

            只要知道這樣一個事實:一個序列的逆序唯一決定了這個序列。

            例如:序列1,4,3,2的逆序為1--0,2--2,3--1,4--0,可以用一個四維坐標(biāo)來表示(0,2,1,0),第i維的數(shù)是 i 在原序列中的逆序數(shù),取值范圍是0,1...4-i。

            為解決這個問題,以N=4,逆序數(shù)M=5為例。

            1 2 3 4
            最大逆序 3 2 1 0

            對這個問題可以采取貪心策略。
            首先,如果所求序列以1為首,則1的逆序為0,可以從上表看出此時序列的逆序數(shù)最多為2+1=3<5,不滿足。考慮以2為首,序列的逆序最多為3+1<5,不滿足。
            考慮以3為首,可見當(dāng)1的逆序為3,2的逆序為2,4的逆序為0時滿足要求,這時1,2,4均為最大逆序,因而只能排列為4,2,1,加上首數(shù),所求序列為3,4,2,1。

            若M=3,采取同樣的貪心策略,可求得結(jié)果為1,4,3,2。

            依此思路,可以得到所求序列關(guān)于N,M的關(guān)系式,具體如下:
            1,2,3,...N-P,  N-((p-1)*p/2-M),  N  ,  N-1...N-P+1.(P是滿足(P-1)*P/2>=M的最小值)。
            代碼就容易多了。
            關(guān)于更多排列的內(nèi)容可參考:/Files/sdz/s.doc
            #include <stdio.h>
            int main(int argc, char *argv[])
            {
                
            int n,m;
                
            int p,temp,i;
                
            while(scanf("%d%d",&n,&m) && n>0)
                
            {
                    p
            =1;
                    
            while((p*(p-1))/2<m)p++;
                    temp
            =(p*(p-1))/2;
                    
            for(i=1;i<=n-p;i++)
                        printf(
            "%d ",i);
                    printf(
            "%d ",n-temp+m);
                    
            for(i=n;i>=n-p+1;i--)
                    
            {
                        
            if(i!=n-temp+m)
                            printf(
            "%d ",i);
                    }

                    printf(
            "\n");
                }

                
            return 0;
            }



            posted @ 2010-08-13 16:13 若余 閱讀(1954) | 評論 (3)編輯 收藏
            僅列出標(biāo)題  下一頁

            導(dǎo)航

            <2025年8月>
            272829303112
            3456789
            10111213141516
            17181920212223
            24252627282930
            31123456

            統(tǒng)計

            常用鏈接

            留言簿

            隨筆檔案(16)

            搜索

            最新隨筆

            最新評論

            評論排行榜

            香蕉久久影院| 99久久这里只有精品| 国产精品久久久久久久久软件| 2021国产精品久久精品| 久久精品一本到99热免费| 国内精品伊人久久久久影院对白| 超级97碰碰碰碰久久久久最新| 久久精品国产第一区二区三区 | 成人久久免费网站| 国产精品久久久久久久久| 久久久久亚洲AV成人网| 国产精品免费福利久久| 97视频久久久| 亚洲人AV永久一区二区三区久久| 国产精品久久久久久福利漫画| 99精品国产免费久久久久久下载 | 漂亮人妻被中出中文字幕久久| 久久精品国产亚洲av水果派 | 婷婷久久综合九色综合九七| 精品无码久久久久国产动漫3d| 国产亚洲欧美成人久久片| 伊人色综合九久久天天蜜桃| 成人精品一区二区久久| 久久婷婷激情综合色综合俺也去 | 国产精品美女久久久网AV| 亚洲色大成网站WWW久久九九| 久久婷婷色综合一区二区| 国产精品久久久久aaaa| 久久99国内精品自在现线| 久久综合九色综合网站| 亚洲精品乱码久久久久久不卡| 国产精品99久久久久久猫咪| 狠狠色婷婷久久一区二区三区| 久久久噜噜噜久久中文字幕色伊伊 | 欧美成人免费观看久久| 久久香蕉超碰97国产精品| 久久国产欧美日韩精品| 久久棈精品久久久久久噜噜| 少妇被又大又粗又爽毛片久久黑人 | 久久经典免费视频| 97精品伊人久久大香线蕉|