蒜頭君去書店買書,他有 m
元錢,書店裡面有n
本書,每本書的**為 pi
元。蒜頭君很愛學習,想把身上錢都用來買書,並且剛好買 k
本書。請幫蒜頭君計算他是否能剛好用m
元買k本書。
第一行輸入 3
個整數m(
1≤m≤
1000
0000
0),n
(1≤n
≤30)
,k(1
≤k≤m
in(8
,n))
接下來一行輸入
n 個整數,表示每本書的**pi
(1≤
pi≤
1000
0000
0)。如果蒜頭君能剛好用
m 元買 k
k 本書,輸入一行"yes"
, 否則輸出"no"
。
樣例輸入1
10 4 41 2 3 4
樣例輸出1
yes
樣例輸入2
10 4 31 2 3 4
樣例輸出2
no
解題說明:這裡有滿足的情況返回1,所有情況不滿足才返回0。所以記錄乙個ret,賦初值為0,當有滿足的條件修改其為1,然後每次函式返回ret。
**:
#include#includeusing namespace std;
int book[35];
int m,k,n;
int ret=0;
int dfs(int sum,int c,int i)
if(dfs(0,0,0))cout<<"yes";
else cout<<"no";
return 0;
}
深度優先搜尋(入門詳解) DFS
深度優先搜尋過程簡要來說是對每乙個可能的分支路徑深入到不能再深入為止,而且每個節點只能訪問一次,就是找到與某個節點相關聯的所有情況,從中找出最優解。以乙個例子來講解這種演算法的基本思路 描述1 2 3 4 5 6 7 1 2 3 4 圖 1 wall no wall no wall 圖1是乙個城堡的...
演算法入門 深度優先搜尋 DFS
深度優先搜尋 dfs 演算法入門 郭志偉 sysu raphealguo at qq.com 2012 05 12 深度優先搜尋 縮寫dfs 有點類似廣度優先搜尋,也是對乙個連通圖進行遍歷的演算法。它的思想是從乙個頂點v0開始,沿著一條路一直走到底,如果發現不能到達目標解,那就返回到上乙個節點,然後...
搜尋剪枝DFS
tempter of the bone hdu1010 題意 給乙個圖,找出乙個看能否能在t的時間內從s到達d點 思路 bfs肯定不行,因為bfs找到的是最短時間的路徑,無法對在t時間點到達d點進行判斷 於是才想到了dfs,這個能把所有的情況遍歷一遍的演算法,雖然圖的長寬只有7,但是總是超時,這次終...