/*
輸入:005300000
800000020
070010500
400005300
010070006
003200080
060500009
004000030
000009700
程式應該輸出:
145327698
839654127
672918543
496185372
218473956
753296481
367542819
984761235
521839764
再例如,輸入:
800000000
003600000
070090200
050007000
000045700
000100030
001000068
008500010
090000400
程式應該輸出:
812753649
943682175
675491283
154237896
369845721
287169534
521974368
438526917
796318452
*/#include
using
namespace std;
int a[9]
[9];
//n為第n/9行第n%9列
bool
judge
(int n,
int i)
int row =
(n/9)/
3*3;
int col = n%9/
3*3;
for(
int b=row;b<=row+
2;b++
)for
(int c=col;c<=col+
2;c++
)return
true;}
void
dfs(
int n)
exit(0
);}if
(a[n/9]
[n%9])
dfs(n+1)
;else
for(
int i=
1;i<=
9;i++)}
}int
main()
dfs(0)
;return0;
}
/*輸入4
1 2 4 7
13 輸出
yes 2 4 7
*/#include
using
namespace std;
int n;
int k;
int a[25]
;vector<
int> temp;
void
dfs(
int m,
int v)
exit(0
);}if
(m==n)
return
; temp.
push_back
(a[m]);
dfs(m+
1,v-a[m]);
temp.
pop_back()
;dfs
(m+1
,v);
}int
main()
/*
輸入10 12
w........ww.
.www.....www
....ww...ww.
.........ww.
.........w..
..w......w..
.w.w.....ww.
w.w.w.....w.
.w.w......w.
..w.......w.輸出3
*/#include
using
namespace std;
int n,m;
int cnt=0;
char a[
110]
[110];
int visited[
110]
[110]=
;void
dfs(
int i,
int j)
intmain()
cout
}
/*輸入8
輸出92
*/#include
using
namespace std;
int n;
int cnt=0;
int pos[16]
;void
dfs(
int k)
int j;
for(
int i=
0;i(j==k)
}return;}
intmain()
/*輸入6
輸出 1 4 3 2 5 6
1 6 5 2 3 4
*/#include
using
namespace std;
int n;
int isprime[32]
=;vector<
int> a;
int visited[16]
=;void
dfs(
int k)
return;}
for(
int i=
2;i<=n;i++)}
return;}
//尤拉篩求素數
void
getprime()
for(
int j=
0;j<
2*n;j++)}
// 列印求得的素數
// int a=prime.size();
// for (int i=0;i// cout<}
intmain()
/*
輸入7 3
30 3
輸出abacaba
abacabcacbabcabacabcacbacaba
*/#include
using
namespace std;
int n,l,cnt=0;
string s ="";
bool
check
(char c)
return
true;}
void
dfs(
int k)
for(
char i=
'a';i<
'a'+l;i++)}
}int
main()
leetcode演算法總結 DFS深度優先搜尋
自頂向下 根節點到葉子節點 前序處理 向下傳參 自底向上 子節點到子節點 後序處理 構建二叉樹 n叉樹模板 dfs treenode root,int path 重點解讀 root left 才是指向,root root left是移動指標遍歷 父節點要傳給子節點值,則放到遞迴的形參中。void d...
演算法導論 第七章 排序
什麼是穩定排序?n個記錄的序列為 r1,r2,r3 rn 其相應的鍵值序列為 k1,k2,k3 kn 假設ki kj,若在排序前的序列中ri在rj之前,即 i注意 穩定性是排序方法本身的特性,與資料無關,換句話說,一種排序方法如果是穩定的,則對所有的資料序列都是穩定的,反過來,如果在一組資料上出現不...
演算法筆記第七章總結
top棧頂指標 清空void clear 獲取棧內元素個數int size 判空bool empty 進棧void push x 出棧void pop 取棧頂元素int top while st.empty 隊首指標front指向隊首元素的前乙個位置,隊尾指標rear指向隊尾元素。清空void cl...