博文

求两个字符串的最长公共子序列(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;     /*应该是......

阅读全文(5175) | 评论:3

回溯法解决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;......

阅读全文(6155) | 评论:4

迷宫全部路径递归算法(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......

阅读全文(4421) | 评论:0