字典序生成下一排列組合 poj 1146水

2021-06-29 02:56:09 字數 606 閱讀 1761

#include #include #include #include #include #include using namespace std;

const int maxn = 50 + 10;

char str[maxn];

int len;

bool solve()

int main()

return 0;

}

題目要求即是 求出當前串的按字典序的下一排列組合,設當前串為(p) = p1p2p3...pi-1pi...pn

2)   找到pi-1 後面比pi-1大的最後乙個數(即比pi-1大的最後乙個數)的下標: j = max

3)   互換pi-1 與 pj,得到 p1...pi-2pjpipi+1...pj-1pi-1pj+1...pn

4)   將pj後面的數按遞增順序排列,得到 下一排列

如:2763541

1.找到最後乙個正序35;

2.找到在3後面比其大的最後乙個數4

3.互換3 與 4 的位置 2764531

4.把4後面的字串按公升序排列 2764135

poj1146:

下一排列問題(全排列暴力)

time limit 1000 ms memory limit 32768 kb description lele 最近上課的時候都很無聊,所以他發明了乙個數字遊戲來打發時間。這個遊戲是這樣的,首先,他拿出幾張紙片,分別寫上0到9之間的任意數字 可重複寫某個數字 然後,他叫同學隨便寫兩個數字x和k。...

POJ 1469 排列組合的思維

題意就是說給一列序列.其順序是 1 a 2 b 26 z 27 ab.28 ac.51 az.52 bc.類似這樣.其中的字串都是每一位比前一位大.最長為vwxyz.給出乙個字串.求出其在佇列中的序列號.這道題就是用乙個排列組合.比如求 bdf 求出1位和2為總共有多少個.然後每一位就依次求出前一位...

HDU1521 排列組合 生成函式 揹包

鏈結 可以用生成函式做,也可以用組合數做。生成函式就是無腦算一下階乘暴力揹包,然後最後再乘上 m 的階乘 組合數的方法就是用類似揹包的轉移,轉移的時候考慮當前放的這幾個的方案數即可 includeusing namespace std const int maxn 23 inline int rea...