博文
求两个字符串的最长公共子序列(2006-06-24 19:54:00)
摘要://原程序见 http://blog.programfan.com/article.asp?id=14838
#include<iostream>#include<string>using namespace std;void maxstring(string str1,string str2){ int max,tag,i,j; int length1=str1.size(); int length2=str2.size(); int a[length1+1][length2+1]; for(i=0;i< length1;i++) for(j=0;j< length2;j++) a[i][j]=0;
//初始化状态a[0][0...length1]和a[0..length2][0] for (j = 0; j < length2; j++) if (str1[0] == str2[j])a[0][j] = 1; for (i = 0; i < length1; i++) if (str1[i] == str2[0])a[i][0] = 1; max = a[0][0]; tag = 0; /*应该是......
回溯法解决N皇后问题(2006-06-22 12:37:00)
摘要:#include <iostream>using namespace std;
#define N 4
char board[N][N];int col[N]; //存储第i行对应的列的值,这样的(i,j)值满足当前棋盘上的皇后不能互相攻击。
bool safetyPlace(int x,int y) //(x,y)位置是否安全{ for (int i = 0; i < x; i++) { int j = col[i]; if (x == i || y == j)return false; //同一行或同一列 if (x-y == i-j || x+y == i+j)return false; //左,右对角线 } return true;}
void queen(int i) //处在第i行时状态{ if (i == N) //输出棋盘 {for (int w = 0;......
迷宫全部路径递归算法(2006-06-21 21:22:00)
摘要:#include <iostream>using namespace std;
#define N 4#define M 4
int x,y;enum direction{UP,DOWN,LEFT,RIGHT};
char Maze[N][M] = { '1','1','1','1', '1','1','0','1', '1','0','1','1', '1','1','1','1' }; bool visited[N][M]={false};
bool available(int i,int j){ if (i == -1 || i == N)return false; if (j == -1 || j == M)return false......
