ACM常用模板 數論

2021-07-07 06:28:11 字數 1589 閱讀 2354

(一)全排列

設一組數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...