經典搜尋演算法 深度優先搜尋 暴力搜尋

2021-10-12 05:19:30 字數 1060 閱讀 6921

訓練題目暴力搜尋題目描述

現有長度為n的數列a和整數m。請編寫乙個程式,判斷a中任意幾個元素相加是否能得到m。a中每個元素只能使用一次。

數列a以及用作問題的q個mi由外界輸入,請對每個問題輸出yes或no。

輸入

第一行輸入n,第二行輸入代表a的n個整數,第三行輸入q,第四行輸入q個整數mi。

輸出

輸出各問題的答案,如果a中元素相加能得到mi則回答yes,反之回答no。

限制

n<=20

q<=200

1<=a的元素<=2000

1<=mi<=2000

樣例輸入

515

710218

24178

2221

10035

樣例輸出

no

noyes

yesyes

yesno

no

題目思路

利用遞迴函式來解決,如果m=1,那麼就不需要任何元素;如果i>=n,那麼超過了題目所提供的數字個數;其餘的就通過遞迴查詢,只要找得到,就返回res的值。

c++**實現

#include

using

namespace std;

int m,n,q;

int a[21]

;//遞迴函式

intsolve

(int i,

int m)

intmain()

scanf

("%d"

,&q)

;// cin>>q;

for(

int i=

0;i)else

}}

ok,解決了。

非常暴力的搜尋演算法 深度優先搜尋演算法

第一題 有1 9 9個數,選取3個數組成以下格式 數字只能用一次,不能重複 有1 9 9個數,選取3個數組成以下格式 數字只能用一次,不能重複 public class demo1 第二題 有1 9 9個數,選取3個數組成以下格式 數字只能用一次,不能重複 如 12 35 47 public cla...

深度優先搜尋演算法

include include define vertexnum 9 struct node typedef struct node graph struct node head vertexnum 定義圖形結構 int visited vertexnum 頂點陣列 深度優先搜尋 void dfs ...

深度優先搜尋演算法

今天我們來複習一下萬能的搜尋演算法之深度優先搜尋演算法。深度優先搜尋演算法顧名思義就是按照樹的延伸不停的往下搜尋,直到樹的盡頭之後再一步一步的回溯回來。好吧,我們直接問你乙個問題,給你乙個數n,讓你輸出從1到這個樹的全排列,你會怎麼寫,會不會想到去用若干個for迴圈?好吧,你肯定錯了,其實他考的就是...