DFS 組合序列

2022-07-15 13:36:11 字數 1102 閱讀 1826

1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7

#define sc(x) scanf("%d",&(x))

8#define sc2(x,y) scanf("%d%d", &(x), &(y))

9#define pn printf("%\n")

10#define pf(x) printf("%d ",x)

11#define pf(x) printf("%d\n",x)

12#define cl(x, y) memset(x, y, sizeof(x))

13#define for(i,b,e) for(int i = b; i <= e; i++)

14#define max(a, b) (a > b ? a : b)

15#define abs(a, b) (a > b ? a - b : b - a)

16using

namespace

std;

17const

int max = 25;18

intans[max], n, v, r;

19void

show();

20void dfs(int pos, int

v);21

intmain()

2227

void dfs(int pos, int

v)28

34if(v > n) return;35

for(i,v,n)

3640}41

void

show()

42

view code

題意:排列與組合是常用的數學方法,其中組合就是從n個元素中抽出r個元素(不分順序且r<=n),我們可以簡單地將n個元素理解為1,2,…,n,從中任取r個數。

例如n=5,r=3,所有組合為:123       124     125       134      135      145       234       235      245        345

思路:回溯先放第乙個數,再在第乙個數字的基礎上放第二個數字,再在第二個數字的基礎上放第三個數字

組合 DFS 簡單

description 問題很簡單,給你n個正整數,求出這n個正整數中所有任選k個相乘後的和。input 輸入有兩行,第一行是兩個整數n和k,其中1 k n 10。接下去一行就是n個正整數,保證最後結果用long即可儲存。output 輸出只有乙個正整數,為最後的和。sample input 4 2...

組合問題(DFS)

給定兩個整數 n 和 k,返回 1 n 中所有可能的 k 個數的組合。輸入 n 4,k 2 輸出 2,4 3,4 2,3 1,2 1,3 1,4 1 題目要求求子集合 所以子集合中的順序沒有要求 2 注意生成子集合時 path陣列下標的確定 這裡沒有使用正常的 idx 作為下標進行確認 因為 idx...

隨意組合 dfs

小明被綁架到x星球的巫師w那裡。其時,w正在玩弄兩組資料 2 3 5 8 和 1 4 6 7 他命令小明從一組資料中分別取數與另一組中的數配對,共配成4對 組中的每個數必被用到 小明的配法是 巫師凝視片刻,突然說這個配法太棒了!因為 每個配對中的數字組成兩位數,求平方和,無論正倒,居然相等 87 2...