实验一
实验名称:递归与分治算法设计 |
|
实验室名称:906 |
实验台号:11 |
学生姓名: 周唯唯 |
专业班级: 15-计科-1 |
指导教师:李艳娟 |
实验日期:2017-9-18 |
一、 实验目的
通过棋盘覆盖问题或合并排序问题及集合最大元问题,掌握分治算法的基本思想,掌握分治算法的设计步骤及用递归技术实现分治策略。
二、实验仪器及环境:
PC计算机;windows XP操作系统、Visual C++6.0
二、 实验内容及结果
1、 棋盘覆盖问题
在一个2k×2k 个方格组成的棋盘中,恰有一个方格与其它方格不同,称该方格为一特殊方格,且称该棋盘为一特殊棋盘。在棋盘覆盖问题中,要用4种不同形态的L型骨牌覆盖给定的特殊棋盘上除特殊方格以外的所有方格,且任何2个L型骨牌不得重叠覆盖。
#include<iostream>
using namespacestd;
int tile = 1;//全局变量骨牌编号
intBoard[4][4];//棋盘
voidChessBoard(int tr,int tc,int dr,int dc,int size);
int main()
{
for(int i=0; i<4; i++)
{
for(int j=0; j<4; j++)
{
Board[i][j] = 0;
}
}
ChessBoard(0,0,0,1,4);
for(int i=0; i<4; i++)
{
for(int j=0; j<4; j++)
{
cout<<Board[i][j]<<"";
}
cout<<endl;
}
}
/**
* tr : 棋盘左