1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7view code#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
題意:排列與組合是常用的數學方法,其中組合就是從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...