dfs的乙個小實現(啊哈演算法的例題)

2022-03-11 14:53:39 字數 666 閱讀 1743

給定n個盒子,將n個小球放進這些盒子裡,判斷都有多少種情況

寫深度優先搜尋最重要的是理解當前步怎麼做,下一步就當系統已經幫你實現好了(因為只要寫好當前步,下一步解決方法和當前步是一樣的).

#include #include 

#include

#include

#include

#include

using

namespace

std;

int a[10],book[10],n;//

book陣列是乙個標記陣列,n是小球和盒子的數目

void dfs(int step)

cout

; }

for(int i=1;i<=n;i++)

book[i]=1

; a[step]=i;//

當前盒子

dfs(step+1);//

遞迴開始,在下一步返回後要將當前步的小球在放回去,繼續for迴圈,就能得到乙個不同順序的序列。

book[i]=0;//

dfs最重要的的就是記得取消當前狀態

}//當i=n時,跳出for迴圈

return

; }

intmain()

c 實現乙個小演算法

題目 有n個格仔,每個格仔裡有坦克,坦克有兩滴血,你向格仔裡投擲炸彈,每次命中坦克他掉一滴血並隨機像左或者右移動乙個格仔,問最少炸幾次能把全部坦克炸完。題解 先向偶數格仔投擲炸彈,所有的坦克全跑到奇數格仔裡,然後再向奇數格仔裡投擲炸彈,消滅掉之前偶數格仔裡的坦克並且所有的坦克全跑到偶數格仔裡,再向偶...

啊哈演算法 萬能的搜尋 解救小哈DFS

迷宮由n行m列的單元格組成 n和m都小於50 每個單元格要麼是空地,要麼是障礙物。你的任務是幫助小哼找到一條從迷宮的起點通往小哈所在位置的最短路徑。障礙物不能走,且不可走到迷宮外 啊哈演算法 解救小哈 include int n,m,p,q,min 99999999 把min設定成很大的數 int ...

乙個演算法的實現

某同學幫國外某mm做的題。演算法描述 首先將兩個字串和乙個臨界值作為引數傳入函式,比如 aaaaaaaaaa bbaaababaa 2,然後在函式中依次比較兩個字串的每個字元,當不同的字元數超過指定的臨界值後,繼續比較,並將大於等於臨界值且最大數目的第乙個字串中的相同字元轉換為大寫,比如,根據以上輸...