8 1DFS選數問題深搜引數index忘 1

2021-10-22 01:41:00 字數 1148 閱讀 3322

問題:dfs(index+1,nowk,sum,sumsqu);又忘了使index+1。

在深蒐時,要不index+1,要不nowk+1,總得有乙個退出條件。

注意:ans=temp;vector竟然有這種賦值方式。

#include

#include

using namespace std;

//從n個數選k個數使其和為x,如有多個,則選平方和最大方案

int n,k,x,maxsumsqu=-1

,a[30];

vector<

int> temp,ans;

//temp暫存所選數,ans為平方和最大方案的陣列

void

dfs(

int index,

int nowk,

int sum,

int sumsqu)

return;}

if(nowk>k||sum>x||index==n)

return

;//已處理完n個數,或超過k個數,或和超過x,返回

temp.

push_back

(a[index]);

dfs(index+

1,nowk+

1,sum+a[index]

,sumsqu+a[index]

*a[index]);

//可重複選數

//dfs(index,nowk+1,sum+a[index],sumsqu+a[index]*a[index]);

temp.

pop_back()

;dfs

(index+

1,nowk,sum,sumsqu);}

intmain()

dfs(0,

0,0,

0);printf

("%d\n"

,maxsumsqu)

;for

(vector<

int>

::iterator it=ans.

begin()

;it!=ans.

end(

);it++

)return0;

}

數獨遊戲(dfs深搜)

如下所示,玩家需要根據9 9盤面上的已知數字,推理出所有剩餘空格的數字,並滿足每一行 每一列 每乙個色九宮內的數字均含1 9,不重複 數獨的答案都是唯一的,所以,多個解也稱為無解 本圖的數字據說是芬蘭數學家花了3個月的時間設計出來的較難的目。但對會使用計算機程式設計的你來說,恐怕易如反掌了 本題的要...

全排列問題 深搜DFS

description 輸出自然數 1 到 n 所有不重複的排列,即 n 的全排列,要求所產生的任一數字序列中不允許出現重複的數字。input 第一行為乙個整數n。output 由1至n組成的所有不重複的數字序列,每行乙個序列。每個數字之間由空格隔開。sample input 1 3sample o...

八皇后問題(dfs深搜)

題目 洛谷 p1219 乙個如下的 6 6 的跳棋棋盤,有六個棋子被放置在棋盤上,使得每行 每列有且只有乙個,每條對角線 包括兩條主對角線的所有平行線 上至多有乙個棋子。上面的布局可以用序列 2 4 6 1 3 5來描述,第 i個數字表示在第 i行的相應位置有乙個棋子,如下 行號 1 2 3 4 5...