1.8皇后/n皇后问题(循环嵌套/递归)
循环嵌套只能解决小数目的皇后问题,此处用递归最为灵活、恰当。
算法思路:
递归调用一个函数,用来摆放第k行的皇后(在0~k-1行皇后摆好的情况下,摆放第k行及其后的皇后):逐个尝试第k个皇后的位置,直到不冲突后继续调用自身摆放下一个皇后。当k=n时结束递归。
源程序:
#include <stdio.h>#include <stdlib.h>#define N 300int n;int col[N];void NQueen(int k){int i,j;if(k==n){for(i=0;i<n;i++){printf("%d ",col[i]+1); //输出结果的每一行代表一种摆法,行里的第1个数字如果是n,表示第i行的皇后放在第n列}printf("\n");}for(i=0;i<n;i++){for(j=0;j<k;j++){if((col[j]==i)||(abs(k-j)==abs(col[j]-i))){break;}}if(j==k){col[k]=i;NQueen(k+1);}}}void main(){scanf("%d",&n);NQueen(0); //从第0行皇后开始摆放}
2.数字三角形(3.23续)




3.动态规划一般规律总结、基本思想、使用条件、设计步骤


4. 0-1背包问题




5.求最长上升子序列的长度


