棋盘覆盖(我们学校自己的UOJ上的变形题)
#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上的变形题)的更多相关文章
- NYOJ 45 棋盘覆盖 模拟+高精度
题意就不说了,中文题... 小白上讲了棋盘覆盖,于是我就挖了这题来做. 棋盘覆盖的推导不是很难理解,就是分治的思想,具体可以去谷歌下. 公式就是f(k) = f(k - 1) * 4 + 1,再化解下 ...
- CODEVS 2171 棋盘覆盖
2171 棋盘覆盖 给出一张nn(n<=100)的国际象棋棋盘,其中被删除了一些点,问可以使用多少12的多米诺骨牌进行掩盖. 错误日志: 直接在模板上调整 \(maxn\) 时没有在相应邻接表数 ...
- 棋盘覆盖问题 (粉书 P230 【递归】** )
转载自:http://blog.csdn.net/akof1314/article/details/5423608 (赞) 在一个 2^k * 2^k 个方格组成的棋盘中,若恰有一个方格与其它方格不 ...
- js算法:分治法-棋盘覆盖
在一个 2^k * 2^k 个方格组成的棋盘中,若恰有一个方格与其他方格不同.则称该方格为一特殊方格,称该棋盘为一特殊棋盘.显然特殊方格在棋盘上出现的位置有 4^k 种情形.因而对不论什么 k> ...
- bzoj 2706: [SDOI2012]棋盘覆盖 Dancing Link
2706: [SDOI2012]棋盘覆盖 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 255 Solved: 77[Submit][Status] ...
- NYOJ 45 棋盘覆盖
棋盘覆盖 水题,题不难,找公式难 import java.math.BigInteger; import java.util.Scanner; public class Main { public s ...
- 棋盘覆盖(大数阶乘,大数相除 + java)
棋盘覆盖 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 在一个2k×2k(1<=k<=100)的棋盘中恰有一方格被覆盖,如图1(k=2时),现用一缺角的 ...
- 棋盘覆盖(一) ACM
棋盘覆盖 描述 在一个2k×2k(1<=k<=100)的棋盘中恰有一方格被覆盖,如图1(k=2时),现用一缺角的2×2方格(图2为其中缺右下角的一个),去覆盖2k×2k未被覆盖过的方格,求 ...
- 棋盘覆盖问题(算法分析)(Java版)
1.问题描述: 在一个2k×2k个方格组成的棋盘中,若有一个方格与其他方格不同,则称该方格为一特殊方格,且称该棋盘为一个特殊棋盘.显然特殊方格在棋盘上出现的位置有种情形.因而对任何 k≥0,有4k种不 ...
随机推荐
- python 函数&条件,循环
条件if <条件判断1>: <执行1>elif <条件判断2>: <执行2>elif <条件判断3>: <执行3>else: & ...
- 如何使git忽略某些文件或文件夹
为什么要忽略某些文件或文件夹的变化? git作为一款项目文件变更版本管理软件,其主要功能之一就是追踪项目文件夹内各种文件及文件夹的变更情况.但是,在日常使用中,并非项目文件夹下的所有文件及文件夹变更都 ...
- Simotion 绝对值编码器使用外部开关回零
问题来源: 西门子的1FK7二代电机,目前已经没有增量编码器.标准的编码器选项是单圈绝对值,或多圈绝对值. 在某些应用中,如印刷机的版辊.模切轴.飞剪电机等,需要使用外部开关来回零.下文描述了使用外部 ...
- February 2 2017 Week 5 Thursday
Only do what your heart tells you. 随心而行. My heart tells me that I should leave here and go back to X ...
- February 1 2017 Week 5 Wednesday
If you can't get a miracle, become one. 如果奇迹没有眷顾你,那就让自己变成奇迹吧. If you think you are bad luck, you did ...
- SAP R/3系统的R和3分别代表什么含义,负载均衡的实现原理
1972年,SAP诞生,推出了RF系统(实时财务会计系统), 后来命名为R1. R指Real time.3既指第三代系统,又代表3层架构. 三层架构分别为下图的Presentation server ...
- nefu 628 Garden visiting
//yy:想到昨天一个神题整了几个小时,最后按题解把p拆了用孙子定理..今天这个简单,把C暴力拆了.. 题目链接:nefu 628 Garden visiting 1 <= n, m, p &l ...
- Android(java)学习笔记209:Android线程形态之 HandlerThread
1. HandlerThread Android HandlerThread 完全解析 Handler与HandlerThread区别,HandlerThread应用(对比AsyncTask) 备注 ...
- 使用JQuery做一组复选框的功能。
之前做过复选框的功能,奈何笔记丢失,害的我又鼓捣了一番...还是博客园做笔记比较好. 假设现在有一个表格,每一行都有一个复选框按钮.在表头还有一个全选的复选框按钮. ①.当点击一个全选按钮时,下面的同 ...
- 【[JLOI2011]飞行路线】
据说这是分层图最短路的板子题 但其实就是一个\(dij\)多带了一维状态 我们看到\(k\)很小所以显然我们可以设计一个这样的状态 \(d[v][k]\)表示从起点到点\(v\)免费走了\(k\)条路 ...