AOJ.859 地毯填补问题 (递归与分治)
来源:互联网 发布:大麦户源码安装教程 编辑:程序博客网 时间:2024/06/11 03:27
AOJ.859 地毯填补问题 (递归与分治)
题意分析
学习分治思想,第一次接触,
代码总览
#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>#include <sstream>#include <set>#include <map>#include <queue>#include <stack>#include <cmath>#define INF 0x3f3f3f3f#define nmax 200#define MEM(x) memset(x,0,sizeof(x))using namespace std;int k;void work(int x,int y,int l,int temp,int fx,int fy){ if(temp==1){ if(fx==x && fy==y){ printf("%d %d %d\n",fx+1,fy+1,1); return; } if(fx==x && fy!=y){ if(fx+1==7 && fy-1==2) fx=6; printf("%d %d %d\n",fx+1,fy-1,2); return; } if(fx!=x && fy==y){ printf("%d %d %d\n",fx-1,fy+1,3); return; } printf("%d %d %d\n",fx-1,fy-1,4);return; } int nx,ny,nl=l/2; nx=x+nl; ny=y+nl; if(fx>=x && fx<nx && fy>=y && fy<ny){ printf("%d %d %d\n",nx,ny,1); work(x,y,nl,temp-1,fx,fy); work(x,ny,nl,temp-1,nx-1,ny); work(nx,y,nl,temp-1,nx,ny-1); work(nx,ny,nl,temp-1,nx,ny); return; } if(fx>=x && fx<nx && fy>=ny){ printf("%d %d %d\n",nx,ny-1,2); work(x,y,nl,temp-1,nx-1,ny-1); work(x,ny,nl,temp-1,fx,fy); work(nx,y,nl,temp-1,nx,ny-1); work(nx,ny,nl,temp-1,nx,ny); return; } if(fx>=nx && fy>=y && fy<ny){ printf("%d %d %d\n",nx-1,ny,3); work(x,y,nl,temp-1,nx-1,ny-1); work(x,ny,nl,temp-1,nx-1,ny); work(nx,y,nl,temp-1,fx,fy); work(nx,ny,nl,temp-1,nx,ny); return; } printf("%d %d %d\n",nx-1,ny-1,4); work(x,y,nl,temp-1,nx-1,ny-1); work(x,ny,nl,temp-1,nx-1,ny); work(nx,y,nl,temp-1,nx,ny-1); work(nx,ny,nl,temp-1,fx,fy); return;}int main (){ //freopen("in.txt","r",stdin); int x,y,len =1,i; scanf("%d",&k); scanf("%d %d",&x,&y); i = k; while (i--) len*=2; work(1,1,len,k,x,y);}
0 0
- AOJ.859 地毯填补问题 (递归与分治)
- AOJ 859 地毯填补问题 【分治】
- 【AOJ 859】地毯填补问题(分治)
- 地毯填补问题(分治)(AOJ 859)
- CJOJ P1619 - 【中学高级本】地毯填补
- 分治与递归策略_hanio塔问题
- 字典序问题-递归与分治
- 汉诺塔问题(递归与分治)
- 棋盘覆盖问题(递归与分治)
- [递归与分治]棋盘覆盖问题
- 递归与分治之棋盘覆盖问题
- 分治与递归法:全排列问题
- 递归与分治:邮局选址问题。
- 递归与分治中的棋盘覆盖问题
- 递归与分治——排列问题
- 递归与分治——汉若塔问题
- 分治与递归:棋盘覆盖问题
- 分治与递归:寻找最大元问题
- BAT某公司招聘在线编程题目的两种解法
- include指令与include动作、forward动作、param动作、常用的三种指令:page,include,taglib
- 执行hadoop jar ...出现 ipc.Client:
- 有了malloc/free,为什么还要new/delete
- 使用libjpeg区域显示超大图
- AOJ.859 地毯填补问题 (递归与分治)
- 安装maven遇到的问题
- Tensorflow实现最近邻
- 判断一棵树是不是二叉搜索树
- xCode8 ios10再次开发记录
- LeetCode刷题(C++)——Construct Binary Tree from Inorder and Postorder Traversal(Normal)
- 第二章 递归
- CSDN日报20170428 ——《你的开发为何如此低效?》
- 网络层-ICMP(互联网消息控制协议)