(一)全排列
設一組數p = , 全排列為perm(p),pn = p – 。則perm(p) = r1perm(p1), r2perm(p2), r3perm(p3), … , rnperm(pn)。當n = 1時perm(p} = r1。
如:求的全排列
1、首先看最後兩個數4, 5。 它們的全排列為4 5和5 4, 即以4開頭的5的全排列和以5開頭的4的全排列。
由於乙個數的全排列就是其本身,從而得到以上結果。
2、再看後三個數3, 4, 5。它們的全排列為3 4 5、3 5 4、 4 3 5、 4 5 3、 5 3 4、 5 4 3 六組數。
即以3開頭的和4,5的全排列的組合、以4開頭的和3,5的全排列的組合和以5開頭的和3,4的全排列的組合.
#include
intn =
0;
void
swap
(int*a
,int*b
)
void
perm
(int
list
,intk,
intm
)
else
}
}
int
main
()
;
perm
(list,0
,4);
printf
("total:%d\n",n
);
return
0;
}
(二)求組合數
#include
#include
#define
mod
1000000007
using
namespace
std;
intc[
1005
][1005
];
void
init
(long
longn,
long
long
m)
}
}
int
main
()
}
ACM常用模板套用
常規法返回的型別是bool型,時間複雜度是o sqrt n bool isprime int x return true 尤拉篩法 時間複雜度最小o n 數開的過大也會tl。呼叫函式 prime max 可以求max以內的素數,存放在陣列primenum 裡。陣列num 裡,值等於0代表下標是素數 ...
ACM數論總結
斷斷續續的學習數論已經有一段時間了,學得也很雜,現在進行一些簡單的回顧和總結。學過的東西不能忘啊。1 本原勾股數 概念 乙個三元組 a,b,c 其中a,b,c沒有公因數而且滿足 a 2 b 2 c 2 首先,這種本原勾股數的個數是無限的,而且構造的條件滿足 a s t,b s 2 t 2 2,c s...
ACM 數論小結
斷斷續續的學習數論已經有一段時間了,學得也很雜,現在進行一些簡單的回顧和總結。學過的東西不能忘啊。1 本原勾股數 概念 乙個三元組 a,b,c 其中a,b,c沒有公因數而且滿足 a 2 b 2 c 2 首先,這種本原勾股數的個數是無限的,而且構造的條件滿足 a s t,b s 2 t 2 2,c s...