题目

#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. .Net深入体验与实践第一章

    什么是委托?委托和事件是什么关系? 我的理解是委托朋友,事件是一个事情比如,中午12点要吃饭了,咱家搞忘了!还在继续嗨皮,我的朋友会叫我与他一起吃饭. 什么事反射? 可以获取.Net中的每个类型(类, ...

  2. 第四周 day4 python学习笔记

    关于装饰器的更多信息可以参考http://egon09.blog.51cto.com/9161406/1836763 1.装饰器Decorator 装饰器:本质上是函数,(装饰其他函数),就是为其他函 ...

  3. Windows 10 KMS 手工激活

    第一.安装好Win10系统,不需要安装其他激活工具.第二.是删除默认序列号,打开命令提示符(管理员),运行 slmgr.vbs -upk,可提示已卸载了序列号. slmgr /ipk W269N-WF ...

  4. February 8 2017 Week 6 Wednesday

    Goals determine what you are going to be. 目标决定你将成为什么样的人. Owning some goals in life means you will ha ...

  5. python进阶介绍(进阶1)

    转载请标明出处: http://www.cnblogs.com/why168888/p/6411664.html 本文出自:[Edwin博客园] python进阶介绍(进阶1) 1. python基础 ...

  6. char *转string遇到诡异的问题记录

    这个问题的背景是在用libevent的buffer_remove时出现的,写一个伪代码 char buffer[2048] ={0}; string str; int n = buffer_remov ...

  7. Join Resig's “Simple JavaScript Inheritance ”

    ======================Enein翻译=========================           John Resig 写了一篇关于 JavaScript 里类似其它语 ...

  8. 【转】Java中关于WeakReference和WeakHashMap的理解

    新美大的10月11日的笔试中有一道选择题,让选择函数返回结果,代码如下: private static String test(){ String a = new String("a&quo ...

  9. 十六、详述 IntelliJ IDEA 创建 Maven 项目及设置 java 源目录的方法

    Maven 是一个优秀的项目管理工具,它为我们提供了一个构建完整的生命周期框架.现在,就让我们一起看看如何利用 IntelliJ IDEA 快速的创建 Maven 项目吧! 如上图所示,点击Creat ...

  10. java多线程注意事项

    1:继承thread和实现Runnable创建线程的区别: 继承thread创建的对象直接start()就可以就绪,但是使用Runnable所new出来的对象要先new Thread(xx)才能sta ...