Magic盒子 裸的遞迴回溯

2021-08-17 00:02:53 字數 995 閱讀 2328

time limit: 1 sec  

memory limit: 128 mb

submit: 28  

solved: 9 [

submit][

status][

web board]

現在acmer有乙個非常有魔法性的盒子,盒子的總的體積是40,使用該盒子你就可以很神奇地變出一些物品,但是這些物品的總體積必須是40才行。acmer現在有n個想要得到的物品,每個物品的體積分別是a1,a2……an。acmer可以從這些物品中選擇一些,如果選出的物體的總體積是40,那麼利用這個神奇的盒子,acmer就可以得到這些物品。現在的問題是,acmer有多少種不同的選擇物品的方式呢?

多組輸入,輸入的第一行是正整數n (1 <= n <= 20),表示不同的物品的數目。接下來的n行,每行有乙個1到40之間的正整數,分別給出a1,a2……an的值。

輸出不同的選擇物品的方式的數目。

3 

2020

20

3

這是一道裸的遞迴回溯或者dp如果想不出來動態方程用回溯的方法是最簡單的

我是用的回溯方法

# include

# include

# include

# include

# include

# include

# include

# include

# include

using namespace std;

int a[25];//物品

//int b[20];

int v[25];//標記

int sum = 0;

int n;

void bfs(int flag, int m)

for(int i = m; i < n; i++)}}

int main(int argc, char *argv)

return 0;

}

使用with遞迴回溯

向上回溯,查詢頂級部門 declare pdeptid uniqueidentifier with dept deptid,pdeptid as select udepid,uparentid from oa.dbo.depinfo where udepid in select p.udepid f...

遞迴回溯總結

遞迴回溯法對解空間樹作深度優先搜尋,一般情況可表示為 void backtrack int n else 引數n表示遞迴的深度 is ok 表示已經求得問題解 print reult 表示列印結果 如果只求出乙個可行解,那麼求得第乙個問題解後便可exit 如果要求出所有可行解則不需exit base...

遞迴回溯總結

8皇后問題是一道非常經典的題目。題目是說,乙個n n的西洋棋棋盤上主放置n個皇后,使其不能相互攻擊,即任何兩個皇后都不能處在棋盤的同一行,同一列,同一條斜線上,試問共有多少種擺法?其實,題目就是要找出所有的可能情況,然後排除其中不符合條件的情況,剩下的情況即為所要求的。怎麼找出所有的情況呢?對於8皇...