`
hy036630
  • 浏览: 3627 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

棋盘覆盖

J# 
阅读更多
public class ChessBoard
{	
	
		int tile = 1;
		int k = 16;
		
		int[][] Board = new int[16][16];
		public void ChessBoard(int tr,int tc,int dr,int dc,int size)
		{
			if(size == 1) return;
			int t = tile++;
			System.out.println(t);
			int s = size/2;
			if(dr < tr+s && dc <tc + s) //如果特别点在左上脚
				{
					ChessBoard(tr,tc,dr,dc,s);
					
					}
			else
			{
				Board[tr+s-1][tc+s-1] = t;
				ChessBoard(tr,tc,tr+s-1,tc+s-1,s);
				
				}
				if(dr >= tr+s && dc<tc+s)  //如果特别点在左下角
					{
						ChessBoard(tr+s,tc,dr,dc,s);						
						} 			
				else
				{
					Board[tr+s][tc+s-1] = t;
					ChessBoard(tr+s,tc,tr+s,tc+s-1,s);
					}
				if(dr < tr+s && dc >=tc+s)//如果特别点在右上角
				{
					ChessBoard(tr,tc+s,dr,dc,s);
					}
					else
					{
						Board[tr+s-1][tc+s] = t;
						ChessBoard(tr,tc+s,tr+s-1,tc+s,s);
						}
					if(dr >= tr+s && dc >= tc+s)//如果特别点在右下角
						{
							ChessBoard(tr+s,tc+s,dr,dc,s);
							}
						else
						{
							Board[tr+s][tc+s] = t;
							ChessBoard(tr+s,tc+s,tr+s,tc+s,s);
							}
			}
			public void printA()
			{
				for(int i = 0 ; i<k;i++)
					{
						for(int j = 0;j<k;j++)
						{		
								System.out.print("   "+Board[i][j]);
								if(j==15)System.out.println('\t');
							}
								
						}
				}
	
		public static void main(String args[])
			
			{
				ChessBoard cb = new ChessBoard();
			
				cb.ChessBoard(0,0,0,0,16);
				cb.printA();
			}
}


在一个2k x 2k ( 即:2^k x 2^k )个方格组成的棋盘中,恰有一个方格与其他方格不同,称该方格为一特殊方格,且称该棋盘为一特殊棋盘。在棋盘覆盖问题中,要用图示的4种不同形态的L型骨牌覆盖给定的特殊棋盘上除特殊方格以外的所有方格,且任何2个L型骨牌不得重叠覆盖。
分享到:
评论

相关推荐

    MFC界面实现分治法解决棋盘覆盖算法的演示

    在本文中,我们将深入探讨如何使用Microsoft Foundation Class (MFC) 库来实现一个界面,以演示通过分治法解决棋盘覆盖问题。MFC 是 Microsoft 提供的一个C++类库,它为开发者提供了一种构建Windows应用程序的框架,...

    python实现棋盘覆盖动态可视化,完整代码可运行

    在本文中,我们将深入探讨如何使用Python来实现棋盘覆盖的动态可视化。棋盘覆盖问题是一个经典的数学问题,它涉及到如何有效地用特定形状的棋子(通常为L形的 trominoes)覆盖一个二维棋盘,使得每个格子被且仅被一...

    棋盘覆盖 可视化 MFC

    在IT领域,棋盘覆盖问题是一个经典的算法问题,通常用于探讨和解决计算机科学中的路径规划、资源分配等问题。而“棋盘覆盖 可视化 MFC”则涉及到使用Microsoft Foundation Classes (MFC)库来创建一个图形用户界面,...

    棋盘覆盖问题 算法设计

    这是我们校选课上的一个题目,利用分治算法去解棋盘覆盖问题算是最简单的办法吧。在还没加入校队前就看到过这个题目,当时真的有种没法入手,也许那时真的什么都不懂吧,根本也没想过到底怎么入手。自从加入校队,...

    java写的棋盘覆盖程序

    Java 编写的棋盘覆盖程序 本文详细分析了 Java 编写的棋盘覆盖程序,介绍了棋盘覆盖问题的背景知识、选题依据和程序设计目标,并详细分析了程序的设计和实现。 一、棋盘覆盖问题摘要 棋盘覆盖问题是分治算法的一...

    棋盘覆盖算法演示程序

    棋盘覆盖算法是一种经典的计算机科学问题,它源于数学和图论,被广泛应用于解决资源分配、网络优化等问题。在这个“棋盘覆盖算法演示程序”中,我们可以通过代码和实例来深入理解这一算法。 棋盘覆盖问题通常以一个...

    Java基于分治算法实现的棋盘覆盖问题示例

    Java基于分治算法实现的棋盘覆盖问题示例 本文主要介绍了Java基于分治算法实现的棋盘覆盖问题,简单描述了棋盘覆盖问题,并结合具体实例形式分析了Java基于分治算法实现棋盘覆盖问题的相关操作技巧。 知识点一:...

    棋盘覆盖-可视化实现

    棋盘覆盖问题是一种经典的组合优化问题,它在计算机科学、图论和算法设计等领域具有重要的理论价值和实际应用。在本实例中,我们关注的是一个16x16的棋盘,目标是用不同颜色的“棋子”来覆盖整个棋盘,确保每个格子...

    棋盘覆盖算法代码

    棋盘覆盖方块版输出Java和棋盘覆盖数字版输出Java 问题描述 在一个2^k×2^k 个方格组成的棋盘中,恰有一个方格与其他方格不同,称该方格为一特殊方格,且称该棋盘为一特殊棋盘。在棋盘覆盖问题中,要用图示的4种...

    经典棋盘覆盖问题

    "经典棋盘覆盖问题"是一个在计算机科学和数学领域中被广泛研究的理论问题,尤其在算法设计和分析中占有重要地位。这个问题涉及到如何有效地用最少的棋子(通常是皇后或马)覆盖一个给定大小的棋盘,使得棋子之间不能...

    棋盘覆盖的演示软件(mfc)

    标题中的“棋盘覆盖”指的是一个经典的数学问题,通常与计算机科学中的算法设计和分析相关。在编程领域,解决棋盘覆盖问题可以用于理解和实践如何有效地处理组合优化问题。MFC,全称Microsoft Foundation Classes,...

    棋盘覆盖java实现代码

    棋盘覆盖问题是一个经典的计算机科学问题,主要涉及算法设计与分析。在数学和计算机科学中,棋盘覆盖问题通常指的是如何用最小数量的棋子(或者其他形状的元素)完全覆盖一个给定的棋盘,例如8x8的国际象棋棋盘。这...

    用二分法实现棋盘覆盖

    在编程领域,棋盘覆盖问题是一个经典的算法问题,它与计算机科学中的搜索算法和图论密切相关。本项目通过VC6.0环境,结合MFC(Microsoft Foundation Classes)库,运用二分法来解决棋盘覆盖问题,提供了一个直观且...

    c语言代码 棋盘覆盖

    在计算机科学领域,棋盘覆盖问题是一个经典的算法问题,它源于数学和图论。这个问题涉及到在8x8的国际象棋棋盘上放置棋子,使得每行、每列都至少有一个棋子,但不能有两个棋子相邻。这个问题在算法设计与分析中具有...

    棋盘覆盖 java版本

    棋盘覆盖问题是一个经典的计算机科学问题,源自数学和图论领域。它涉及到如何在棋盘上放置棋子,使得每行、每列至少有一个棋子,不允许有相邻的棋子出现。这个问题通常用来演示和练习算法设计,尤其是贪心算法和回溯...

    棋盘覆盖算法实现

    棋盘覆盖算法是一种经典的计算机科学问题,主要涉及图论、组合优化和算法设计。它源自一个实际的棋盘游戏,但被广泛应用于数据结构优化、网络设计和编码等多个领域。在本例中,我们讨论的是C++实现的棋盘覆盖算法。 ...

    棋盘覆盖问题实现

    棋盘覆盖问题是递归的分治思想的典型应用,本文档利用c/c++ 实现棋盘覆盖问题

    棋盘覆盖问题(可视化)

    棋盘覆盖问题是显示生活中的一个重要的应用,并且是可视化的,现在拿出来与大家分享哦

    算法与数据结构课程设计:棋盘覆盖实现(使用HTML,CSS,JS)

    在棋盘覆盖问题中,要用图示的4种不同形态的L型骨牌覆盖给定的特殊棋盘上除特殊方格以外的所有方格,且任何2个L型骨牌不得重叠覆盖。 摘要:在本次棋盘覆盖算法设计过程中,要用4种不同形态的L型骨牌覆盖给定的特殊...

    如何求解棋盘覆盖问题

    棋盘覆盖问题是一个经典的组合优化问题,源自数学和计算机科学领域。它涉及到如何用最少的形状,通常是正方形,来完全覆盖一个给定大小的棋盘,不允许有任何重叠,并确保每个部分都被覆盖到。这个问题有多种变体,如...

Global site tag (gtag.js) - Google Analytics