青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 33,  comments - 33,  trackbacks - 0
STL有一個函數叫next_ermutation,是得出當前排列的下一個排列,數列P[0..n-1](P[i] > P[j]當n>i>j>=0)為最小的排列,然后按照一般數字的排列比較進行排列,就是說該排列的下一個排列比這個排列大,最后的當然是P*[0..n-1](P*[i] < P*[j]當n>i>j>=0)
例如 1 2 3 4,最小的是1 2 3 4,下一個是1 2 4 3.。。。最大是4 3 2 1了。
怎么得出當前排列的下一個排列呢?
定義n為數組P【0,n-1】的長度
下面要考慮的問題,是如何從一個已知的排列P = p1p2…pn,找到它的下一個排列
Q = q1q2…qn。我們要讓排列從小到大生成,簡單說,要讓排列的趨勢從P[0..n-1](P[i] > P[j]當n>i>j>=0)到P*[0..n-1](P*[i] < P*[j]當n>i>j>=0)。
我們可以結合十進制的大小比較來理解。以下以1 3 4 2為例子來說

1.首先從低位找起,找出比高位大的第一個數的位置,定義i為這個位置。(想一下就知道了)若找不到這樣的P[i],說明我們已經找到最后一個全排列,可以返回了。
1 3 4 2 --> 4比3 大,這個位置是第2位(1為第0位,3 為第1位),這時 i = 2

2.再在區間[i,n-1]中查找比P[i-1]大的最小的數。
這個也很容易理解,從例子中看出,這個最小的數是4
然后交換兩者,那么現在的數組是1 4 3 2

3.現在還不是最小的數,因為從第一步的查找,我們有P[i]>P[i+1]> … >P[n-1],否則查找在i~n就會停下來了。這樣的一個排列顯然不是最小的。實際上,原來的P[i...n-1],已經是這一部分最大的一個排列了。但我們現在換了最高位P[i-1],因此要讓后面的數字變的最小。方法很簡單,根據上面的推理,我們只須將P[i...n-1]的數列倒置即可(最大的排列倒置就變成了最小的排列)。
回到例子,1 4 3 2 --> 14 2 3得到答案

看完了分析,現在做一題OJ題目
POJ 題目http://poj.org/problem?id=1833

解答
#include <stdio.h>
#include 
<algorithm>
using namespace std;
int A[1200];

inline 
void Swap(int &a,int &b)
{
    
int tmp = a;
    a 
= b;
    b 
= tmp;
}


void nextPermutation(int *_p,int _n)
{
    
//1.從后向前找 查找不符合趨勢的
    int i = _n-1;
    
while(i > 0 && _p[i - 1> _p[i])
        
--i;
    
if(i == 0)//已到最后
    {
        sort(_p,_p
+_n);
        
return ;
    }

    
//2.查找【i,n-1】中大于p[i-1]的最小數
    int k = i;//p[i]必大于p[i-1]
    for(int j = i; j <= _n-1++j)
    
{
        
if(_p[j] > _p[i-1&& _p[j] < _p[k])
        
{
            k 
= j;
        }

    }


    Swap(_p[k],_p[i
-1]);

    
//3.因為從第一步得【i,n-1】是遞減的,故第2步中反轉p[k],p[i-1]后要把這個區間反轉
    for(int j = i,k = _n-1;j < k; ++j,--k)
    
{
        Swap(_p[j],_p[k]);
    }

}


void Test()
{
    
int n,m;
    scanf(
"%d %d",&n,&m);
    
for(int i = 0; i < n; ++i)
        scanf(
"%d",&A[i]);
    
for(int i = 0; i < m ; ++i)
        nextPermutation(A,n);
    printf(
"%d",A[0]);
    
for(int i = 1; i < n; ++i)
    
{
        printf(
" %d",A[i]);
    }

    printf(
"\n");
}


int main()
{
    
int tc;
    scanf(
"%d",&tc);
    
for(int i = 0; i < tc; ++i)
    
{
        Test();
    }

    
return 0;
}

posted on 2011-01-27 16:50 bennycen 閱讀(498) 評論(1)  編輯 收藏 引用
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲高清视频一区二区| 亚洲欧美日韩中文在线制服| 亚洲理论在线| 欧美1区2区3区| 久久中文在线| 欧美成人蜜桃| 亚洲大胆视频| 久久精品国产77777蜜臀| 黄色成人在线观看| 黄色av成人| 尤物精品国产第一福利三区 | 韩日欧美一区二区| 国自产拍偷拍福利精品免费一| 一区二区亚洲精品| 夜夜精品视频一区二区| 亚洲一区二区三区成人在线视频精品| 欧美一级播放| 亚洲国产成人不卡| 亚洲一区视频| 免费在线亚洲| 国产精品美女久久久免费| 狠狠色伊人亚洲综合网站色| 91久久国产自产拍夜夜嗨| 亚洲一区二区动漫| 另类综合日韩欧美亚洲| 亚洲精品一区二区三区不| 亚洲欧美日韩一区二区三区在线| 欧美一区1区三区3区公司| 欧美高潮视频| 亚洲美女网站| 欧美在线免费观看视频| 欧美日本一区二区三区| 国产一区二区三区奇米久涩| 亚洲理论电影网| 久久精品女人| 一区二区三区久久网| 久久久久久久久蜜桃| 欧美特黄一区| 9i看片成人免费高清| 久久亚洲捆绑美女| 亚洲一区二区在| 欧美久久影院| 欲色影视综合吧| 欧美专区18| 亚洲社区在线观看| 欧美精品大片| 亚洲福利视频在线| 久久亚洲欧美| 久久九九精品| 今天的高清视频免费播放成人 | 一区二区黄色| 欧美韩国日本综合| 亚洲国产精品久久久久秋霞蜜臀 | 免费成人网www| 亚洲在线观看免费视频| 欧美精品在线免费| 91久久精品久久国产性色也91| 欧美中文字幕第一页| 亚洲午夜久久久久久久久电影院| 欧美激情中文字幕在线| 亚洲国产综合在线| 欧美黄色成人网| 老妇喷水一区二区三区| 极品日韩久久| 男女激情久久| 男女精品网站| 亚洲国产成人精品久久| 模特精品裸拍一区| 美女成人午夜| 日韩系列在线| 亚洲人成网站色ww在线| 久热精品在线| 狼人天天伊人久久| 亚洲激情自拍| 亚洲欧洲日本国产| 欧美日韩国产精品| 亚洲综合999| 一本色道久久综合亚洲精品按摩| 欧美日本国产在线| 中日韩美女免费视频网站在线观看| 亚洲国产精品成人va在线观看| 欧美成人免费全部| 亚洲美女尤物影院| 久久av一区二区| 欧美一站二站| 亚洲国产精品电影| 99re热精品| 欧美日韩一区成人| 影音先锋欧美精品| 欧美高清影院| 欧美日韩免费在线| 欧美一区二区在线免费观看| 久久亚洲综合色| 亚洲视频第一页| 午夜视频一区在线观看| 亚洲国产精品高清久久久| 99国产成+人+综合+亚洲欧美| 国产伦精品一区二区三区高清版| 欧美一区二区在线播放| 欧美成人午夜免费视在线看片| 亚洲制服av| 蜜桃久久av一区| 亚洲欧美日韩精品久久久| 久久久美女艺术照精彩视频福利播放 | 欧美制服丝袜第一页| 最新高清无码专区| 亚洲一区二区影院| 亚洲人成网站精品片在线观看 | 久久婷婷国产综合国色天香| 久久日韩精品| 午夜久久黄色| 欧美激情aⅴ一区二区三区| 亚洲自拍三区| 欧美成人精品在线| 久久精品国产一区二区三| 欧美大片免费| 激情综合视频| 亚洲影院一区| 亚洲美女色禁图| 久久成人国产| 亚洲综合电影| 欧美日韩成人一区| 欧美1区2区3区| 国产一区二区三区网站 | 亚洲精品一区在线观看| 国产日韩欧美一区二区三区在线观看| 亚洲国产一区二区三区青草影视| 国产三级欧美三级日产三级99| 99国产成+人+综合+亚洲欧美| 亚洲二区在线观看| 欧美伊人久久大香线蕉综合69| 亚洲精品在线视频| 久久久久国色av免费看影院| 午夜精品www| 欧美日韩一区二区在线播放| 亚洲日本在线观看| 91久久精品美女| 看片网站欧美日韩| 老牛影视一区二区三区| 国产日产欧美a一级在线| 一区二区三区毛片| 亚洲日本中文字幕区| 国产午夜久久| 亚洲一本大道在线| 中文一区二区在线观看| 欧美激情1区2区| 亚洲国产欧美一区二区三区丁香婷| 激情成人综合网| 欧美综合国产精品久久丁香| 久久精品夜色噜噜亚洲a∨| 亚洲欧美日韩综合aⅴ视频| 一本色道久久综合狠狠躁的推荐| 免费一级欧美在线大片| 欧美3dxxxxhd| 亚洲精品国产精品国自产观看| 美女视频黄a大片欧美| 亚洲国产91色在线| 亚洲精品视频在线观看网站| 欧美激情按摩| 在线视频你懂得一区| 欧美一级片久久久久久久| 国产精品国产精品国产专区不蜜| 中文日韩欧美| 久久久久久久欧美精品| 韩国三级电影一区二区| 久久婷婷久久一区二区三区| 欧美激情免费在线| 亚洲天天影视| 国产在线观看一区| 欧美大片免费久久精品三p | 夜夜爽av福利精品导航| 国产精品久久久久久久9999| 亚洲你懂的在线视频| 美女网站在线免费欧美精品| 欧美日韩精品免费看| 亚洲无线视频| 欧美成人综合一区| 亚洲午夜激情网站| 精品9999| 欧美日韩一区在线播放| 欧美一区二区三区视频| 亚洲大胆人体视频| 欧美午夜a级限制福利片| 亚洲小视频在线| 国产亚洲精品aa| 欧美日本国产一区| 欧美在线一级视频| 99视频精品免费观看| 另类人畜视频在线| 亚洲一区免费观看| 亚洲激情一区二区三区| 国产精品女主播| 欧美成人性生活| 久久国产精品99国产| 999在线观看精品免费不卡网站| 久久理论片午夜琪琪电影网| av成人免费观看| 亚洲国产欧美一区二区三区同亚洲 | 欧美在线观看视频| 亚洲免费成人av电影|