题目

#include<iostream>
#include<cstring>
#include<cstdlib>
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
int n,Aix,Aiy,Cnt;
int Map[1000][1000];
void Dac(int Stx,int Sty,int Dep,int Tx,int Ty,int Pas) {
if(Dep == 1) {
return;
}
int Tmp = Dep / 2;
int a = 0,b = 0,c = 0,d = 0;
if(Tx < Stx + Tmp && Ty < Sty + Tmp) { //左上
Dac(Stx,Sty,Tmp,Tx,Ty,1);
} else {
int Sx = Stx + Tmp - 1;
int Sy = Sty + Tmp - 1;
a = 1;
Dac(Stx,Sty,Tmp,Sx,Sy,1);
} if(Tx < Stx + Tmp && Ty >= Sty + Tmp) { //左下
Dac(Stx,Sty + Tmp,Tmp,Tx,Ty,2);
} else {
int Sx = Stx + Tmp - 1;
int Sy = Sty + Tmp;
b = 1;
// printf("%d %d %d\n",Sx,Sy,2);
Dac(Stx,Sty + Tmp,Tmp,Sx,Sy,2);
} if(Tx >= Stx + Tmp && Ty < Sty + Tmp) {
Dac(Stx + Tmp,Sty,Tmp,Tx,Ty,3);
} else {
int Sx = Stx + Tmp;
int Sy = Sty + Tmp - 1;
c = 1;
Dac(Stx + Tmp,Sty,Tmp,Sx,Sy,3);
} if(Tx >= Stx + Tmp && Ty >= Sty + Tmp) {
Dac(Stx + Tmp,Sty + Tmp,Tmp,Tx,Ty,4);
} else {
int Sx = Stx + Tmp;
int Sy = Sty + Tmp;
d = 1;
Dac(Stx + Tmp,Sty + Tmp,Tmp,Sx,Sy,4);
}
if(!d) {
printf("%d %d %d\n",Stx + Tmp,Sty + Tmp,1);
} else if(!c) {
printf("%d %d %d\n",Stx + Tmp,Sty + Tmp,2);
} else if(!b) {
printf("%d %d %d\n",Stx + Tmp,Sty + Tmp,3);
} else if(!a){
printf("%d %d %d\n",Stx + Tmp,Sty + Tmp,4);
}
}
int main() {
scanf("%d%d%d",&n,&Aix,&Aiy);
n = (1 << n);
Dac(0,0,n,Aix - 1,Aiy - 1,0);
return 0;
}

棋盘覆盖(我们学校自己的UOJ上的变形题)的更多相关文章

  1. NYOJ 45 棋盘覆盖 模拟+高精度

    题意就不说了,中文题... 小白上讲了棋盘覆盖,于是我就挖了这题来做. 棋盘覆盖的推导不是很难理解,就是分治的思想,具体可以去谷歌下. 公式就是f(k) = f(k - 1) * 4 + 1,再化解下 ...

  2. CODEVS 2171 棋盘覆盖

    2171 棋盘覆盖 给出一张nn(n<=100)的国际象棋棋盘,其中被删除了一些点,问可以使用多少12的多米诺骨牌进行掩盖. 错误日志: 直接在模板上调整 \(maxn\) 时没有在相应邻接表数 ...

  3. 棋盘覆盖问题 (粉书 P230 【递归】** )

    转载自:http://blog.csdn.net/akof1314/article/details/5423608  (赞) 在一个 2^k * 2^k 个方格组成的棋盘中,若恰有一个方格与其它方格不 ...

  4. js算法:分治法-棋盘覆盖

    在一个 2^k * 2^k 个方格组成的棋盘中,若恰有一个方格与其他方格不同.则称该方格为一特殊方格,称该棋盘为一特殊棋盘.显然特殊方格在棋盘上出现的位置有 4^k 种情形.因而对不论什么 k> ...

  5. bzoj 2706: [SDOI2012]棋盘覆盖 Dancing Link

    2706: [SDOI2012]棋盘覆盖 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 255  Solved: 77[Submit][Status] ...

  6. NYOJ 45 棋盘覆盖

    棋盘覆盖 水题,题不难,找公式难 import java.math.BigInteger; import java.util.Scanner; public class Main { public s ...

  7. 棋盘覆盖(大数阶乘,大数相除 + java)

    棋盘覆盖 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 在一个2k×2k(1<=k<=100)的棋盘中恰有一方格被覆盖,如图1(k=2时),现用一缺角的 ...

  8. 棋盘覆盖(一) ACM

    棋盘覆盖 描述 在一个2k×2k(1<=k<=100)的棋盘中恰有一方格被覆盖,如图1(k=2时),现用一缺角的2×2方格(图2为其中缺右下角的一个),去覆盖2k×2k未被覆盖过的方格,求 ...

  9. 棋盘覆盖问题(算法分析)(Java版)

    1.问题描述: 在一个2k×2k个方格组成的棋盘中,若有一个方格与其他方格不同,则称该方格为一特殊方格,且称该棋盘为一个特殊棋盘.显然特殊方格在棋盘上出现的位置有种情形.因而对任何 k≥0,有4k种不 ...

随机推荐

  1. Spark Worker原理和源码剖析解密:Worker工作流程图、Worker启动Driver源码解密、Worker启动Executor源码解密等

    本课主题 Spark Worker 原理 Worker 启动 Driver 源码鉴赏 Worker 启动 Executor 源码鉴赏 Worker 与 Master 的交互关系 Spark Worke ...

  2. selenium+python 数据驱动-txt篇

    #循环读取txt文件中的数据,可以作为用户名,密码等使用from selenium import webdriver #创建两个列表user=[]pwd=[]f=open(r'C:\bbs\data\ ...

  3. 【深入理解JAVA虚拟机】第二部分.内存自动管理机制.1.内存区域

    1.内存区域 根据<Java虚拟机规范(Java SE 7版)> 的规定,Java虚拟机所管理的内存将会包括以下几个运行时数据区域,如图所示.  程序计数器 当前线程所执行的字节码的行号指 ...

  4. unity3d中设计模式的学习<一>:泛型单例

    单例是游戏开发中比较常见的设计模式,虽然针对的功能不同,但是有一些功能还是共有的,代码也不少,如果能放在一个基类里面是最好不过了,但是单例里需要有个instance功能来返回当前对象,所以这个功能必须 ...

  5. 一个几百行代码实现的http服务器tinyhttpd

    /* J. David's webserver */ /* This is a simple webserver. * Created November 1999 by J. David Blacks ...

  6. Visual Studio中头文件stdafx.h的作用

    在较新版的Visual Studio中,新生成的C++项目文件的的头文件夹下会默认有头文件stdafx.h,而源文件夹下则默认有源文件stdafx.cpp,手动将这些文件删除后,编译时系统还会报错.下 ...

  7. 作为测试新手,web测试从何开始学起?

    我们先来弄清楚web测试的测试范围,通常web测试包含:功能测试.性能测试.浏览器兼容测试.安全测试以及用户界面测试等.那么,作为一个初级测试员或者实习测试员,最开始的能做的只能是功能测试和用户界面测 ...

  8. 分享一个可下拉刷新的ScrollView

    原理:就是动态改变ScrollView header的margin实现 主要的代码: http://blog.csdn.net/swust_chenpeng/article/details/39289 ...

  9. peripheralStateNotificationCB

    /********************************************************************* * @fn peripheralStateNotifica ...

  10. 绘图驱动-OSD原理2

    转载自:http://blog.pfan.cn/programming/21209.html 现在已经可以通过修改存储单元内容来改变OSD的像素,但还有个关键的问题是如何根据需要来进行操作,即如何将某 ...