#include
using namespace std;
/*
*这个题的主要思想:
*1、平均吧这个2的k次幂的方格划分为4个部分
*2、一个含有特殊方格的为一部分
*3、剩下3个没有特殊方格的分别贡献一个小方块合成一个“L”
*4、然后把刚刚贡献出去的小方格当成一个特殊方格,重新回到步骤1
*5、如果特殊方格不足4个的时候就是已经全部分完了,跳出去
*/
//我们得知道是k行k列的方...
分类:
编程语言 时间:
2014-11-16 18:44:09
阅读次数:
163
一、实验目的:熟悉掌握分治算法设计技术二、实验要求:1、按教材所授内容要求,完成“棋盘覆盖问题”算法。得到一个完整正确的程序。2、棋盘大小:32*32(或16*16)3、输出最终结果。三、实验设备及环境:PC机一台、java虚拟机Eclipse或jdk环境四、问题描述:通过一门语言写一个棋盘覆盖算法...
分类:
编程语言 时间:
2014-11-15 21:44:50
阅读次数:
666
#include
#include
#include
using namespace std;
/*
*棋盘覆盖问题
*/
static int t=0;
void ChessBoard(int **map,int r,int l,int pr,int pl,int size)
{
if(1==size) {return;}
t++;
int it = t;
//左上角
if(pr<...
分类:
其他好文 时间:
2014-11-13 10:55:31
阅读次数:
225
在一个由2^k *2^k个方格组成的棋盘中,恰有一个方格与其他方格不同,称该方格为一特殊方格,且称该棋盘
为一特殊棋盘。现有四种L型骨牌如下图所示,要用这四种骨牌覆盖棋盘上除特殊方格之外的其他所有格子,且两个L型骨牌不能相互覆盖。...
分类:
编程语言 时间:
2014-10-24 23:40:00
阅读次数:
791
一个非常经典的题,用分治法来做。每次将棋盘分割成4块,对于原本不存在空白格的棋盘要用一个L骨牌来构造空白格。#include#include#include#include#include#include#define LL long longusing namespace std;int num;...
分类:
编程语言 时间:
2014-09-04 18:32:39
阅读次数:
347
分治算法,有很多典型的问题,如最近点问题、线性选择问题、整数划分问题、大整数成绩问题、棋盘覆盖问题、循环赛日程表、二分搜索、Strassen矩阵乘法、汉诺塔等。准备花些时间逐个解决这些问题,并用Java实现,从最近点问题开始。网上找到一些代码,标题如“java 用蛮力法和分治法求解最近对有关问题”,虽然体现了分治,但划分不够彻底,因此我重新对其进行了实现。
一、基本思想及策略:...
分类:
编程语言 时间:
2014-08-12 22:10:54
阅读次数:
233
棋盘覆盖问题
Time Limit: 1000ms, Special Time Limit:2500ms,
Memory Limit:32768KB
Total submit users: 95, Accepted users:
36
Problem 10432 : No special judgement
Problem description
...
分类:
其他好文 时间:
2014-07-31 13:26:36
阅读次数:
244
在一个 2^k * 2^k 个方格组成的棋盘中,若恰有一个方格与其它方格不同,则称该方格为一特殊方格,称该棋盘为一特殊棋盘。显然特殊方格在棋盘上出现的位置有 4^k 种情形。因而对任何 k>=0 ,有 4^k 种不同的特殊棋盘。下图所示的特殊棋盘为 k=2 时 16 个特殊棋盘中的一个。在棋盘覆盖问...
分类:
其他好文 时间:
2014-07-19 18:00:10
阅读次数:
283
在2^k*2^k个方格组成的棋盘中,有一个方格被占用,用下图的4种L型骨牌覆盖所有棋盘上的其余所有方格,不能重叠。
代码如下:
def chess(tr,tc,pr,pc,size):
global mark
global table
mark+=1
count=mark
if size==1:
return
half=size//2
if pr<t...
分类:
编程语言 时间:
2014-05-08 16:04:51
阅读次数:
367