棋盘覆盖问题
来源:互联网 发布:淘宝购物流程图模板 编辑:程序博客网 时间:2024/06/08 13:19
#include<iostream>#include<iterator>#include<algorithm>using namespace std;/**棋盘覆盖问题*/static int t=0;void ChessBoard(int **map,int r,int l,int pr,int pl,int size){if(1==size) {return;}t++;int it = t;//左上角if(pr<r+size/2&&pl<l+size/2)ChessBoard(map,r,l,pr,pl,size/2);else{map[r+size/2-1][l+size/2-1]=it;ChessBoard(map,r,l,r+size/2-1,l+size/2-1,size/2);}//右上角if(pr<r+size/2&&pl>=l+size/2)ChessBoard(map,r,l+size/2,pr,pl,size/2);else{map[r+size/2-1][l+size/2]=it;ChessBoard(map,r,l+size/2,r+size/2-1,l+size/2,size/2);}//左下角if(pr>=r+size/2&&pl<l+size/2)ChessBoard(map,r+size/2,l,pr,pl,size/2);else{map[r+size/2][l+size/2-1]=it;ChessBoard(map,r+size/2,l,r+size/2,l+size/2-1,size/2);}//右下角if(pr>=r+size/2&&pl>=l+size/2)ChessBoard(map,r+size/2,l+size/2,pr,pl,size/2);else{map[r+size/2][l+size/2]=it;ChessBoard(map,r+size/2,l+size/2,r+size/2,l+size/2,size/2);}}int main(){int k=1,s;//棋盘的大小int r,l;//残缺方格的位置cin>>s;k<<=s;cin>>r>>l;int ** map = new int*[k];for (int i = 0; i < k; i++){map[i] = new int[k];}map[r][l] = 0;//运算ChessBoard(map,0,0,r,l,k);//输出结果for (int i = 0; i < k; i++){copy(map[i],map[i]+k,ostream_iterator<int>(cout," "));cout<<endl;}}
1 0
- 棋盘覆盖问题
- 棋盘覆盖问题
- 棋盘覆盖问题
- 棋盘覆盖问题
- 棋盘覆盖问题
- 棋盘覆盖问题
- 棋盘覆盖问题
- 棋盘覆盖问题
- 棋盘覆盖问题
- ChessBoard棋盘覆盖问题
- 棋盘覆盖问题
- 棋盘覆盖问题
- 棋盘覆盖问题
- 棋盘覆盖问题
- 《ChessboardCoverage_棋盘覆盖问题》
- 棋盘覆盖问题
- 棋盘覆盖问题
- 棋盘覆盖问题
- myeclise下svn账号切换
- iOS视频播放器开发
- #pragma预处理命令
- QQ获取TK 转换
- TabHost分析
- 棋盘覆盖问题
- ios版本适配,机型适配,横竖屏适配
- windows 如何查看端口占用情况?
- SQL Server 2012将不再支持XP系统
- 关于机顶盒焦点的获取,及事件响应!!
- enum可以添加新方法-枚举类型
- IOS之UILabel添加下划线
- 使用plsql连接本地数据库
- 如何用T-SQL使用最短的语句输出100以内素数?