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);
}

最新文章

  1. OF寄存器的判断
  2. Windows Phone中扩展WebBrowser使其支持绑定html内容
  3. SQLServer2012自增列值跳跃的问题
  4. Java BigDecimal详解
  5. route命令
  6. Redis的两个小技巧
  7. Windows基于Apache的svn服务器配置
  8. FastCgi与PHP-fpm关系[转] 读完本文瞬间明朗了很多
  9. &lt;%@ include file=&quot;&quot;%&gt;与&lt;jsp:include page=&quot;&quot;/&gt;区别
  10. 第一个Python程序的Hello Python,竟然有问题
  11. 【网络可靠版】Extjs4 Treegrid 使用实例
  12. 恢复SQLSERVER被误删除的数据
  13. Jquery实现表格的分页
  14. 设置批量商品优惠、如何修改ZenCart产品显示图片的大小
  15. CSS脱离文档流&amp;浮动
  16. JS算法练习四
  17. Clion调试ROS包
  18. 归一化(softmax)、信息熵、交叉熵
  19. linq操作符:连接操作符
  20. 面向连接的传输TCP(一)

热门文章

  1. JAVA日志框架概述
  2. React中类定义组件constructor 和super
  3. 【第三章】Shell 变量的数值计算
  4. 小米 OJ 编程比赛 02 月常规赛
  5. CryptoZombies学习笔记——Lesson1
  6. HADOOP docker(五):hadoop用户代理 Proxy user
  7. Sail
  8. 搭建独立域名博客 -- 独立域名博客上线了 www.hanshuliang.com
  9. Linux上安装MySQL - 12条命令搞定MySql
  10. BluetoothDevice详解