棋盘覆盖(我们学校自己的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种不 ...
随机推荐
- Doing Research Needs Efforts
What is research? From YouTube Video or baiduyun Links What does not? spend many hours before you ...
- 第三周 day3 python学习笔记
1.字符串str类型,不支持修改. 2.关于集合的学习: (1)将列表转成集合set:集合(set)是无序的,集合中不会出现重复元素--互不相同 (2)集合的操作:交集,并集.差集.对称差集.父集.子 ...
- 035server端并发聊天
import socketserver class MyServer(socketserver.BaseRequestHandler): def handle(self): # 里面是每个客户端连接执 ...
- WAS8.5安装和部署
刚研究WAS8.5的安装部署,写一些注意事项: 1.下载安装软件 安装器:agent.installer.linux.gtk.x86_64_1.7.2000.20140227_0303 WAS: WA ...
- The Relationship Between Layers and Views
Layers provide infrastructure for your views. 内核与外壳:数据与封装的关系.
- Yii自定义验证规则
简单的方法:在 model 内部定义规则 最简单的定义验证规则的方法是在使用它的模型(model)内部定义. 比方说,你要检查用户的密码是否足够安全. 通常情况下你会使用 CRegularExpres ...
- 牛客网多校训练第一场 A - Monotonic Matrix(Lindström–Gessel–Viennot lemma)
链接: https://www.nowcoder.com/acm/contest/139/A 题意: 求满足以下条件的n*m矩阵A的数量模(1e9+7):A(i,j) ∈ {0,1,2}, 1≤i≤n ...
- UVA11987 【Almost Union-Find】
这是一道神奇的题目,我调了大概一天多吧 首先hack一下翻译,操作3并没有要求查询后从其所在集合里删除该元素 于是我们来看一下这三个操作 第一个合并属于并查集的常规操作 第三个操作加权并查集也是可以解 ...
- python 爬取猫眼下的榜单(一)--单个页面
#!/usr/bin/env python # -*- coding: utf- -*- # @Author: Dang Kai # @Date: -- :: # @Last Modified tim ...
- 2019.1.1 在重写的方法上面添加@Override注解方法报错解决办法
报错代码 The method transfer(Integer, Integer, Double) of type AccountServiceImpl must override a superc ...