算法设计与分析: 5-15 智力拼图问题

本文探讨了如何使用回溯法解决12个由5个正方形组成的独特图形拼接成指定矩形的问题。通过Java编程,实现算法来确保每个图形恰好使用一次,并可以进行旋转或翻转。数据输入为矩形的尺寸,输出为拼接方案或"No solution!"提示。
摘要由CSDN通过智能技术生成

5-15 智力拼图问题


问题描述

设有 12 个平面图形如图所示。每个图形的形状互不相同,但它们都是由 5 个大小相同的正方形组成。下图中 12 个图形拼接成一个 6×10 的矩形。试设计一个算法,计算出用这 12 个图形拼接成给定矩形的拼接方案。

智力拼图问题

对于给定矩形,计算用上述 12 个图形拼接成给定矩形的一个拼接方案。拼接方案中每个图形可以经过旋转或翻转后进行拼接,但要求使用 12 个图形中每个图形恰好 1 次。

数据输入:
第一行有 2 个正整数 m 和 n,表示给定的矩形是一个 m×n m × n 矩形。

结果输出:
每行 n 个字符,共 m 行。给定的 12 个图形的编号如下。如果不存在所要求的拼接方案,输出“No solution!”。

智力拼图问题


Java

package Chapter5HuiSuFa;

import java.util.Arrays;
import java.util.Scanner;

public class ZhiLiPingTu {
   

    private static class pp{
   
        char[][] aa = new char[5][5];
    }

    private static class fboard{
   
        char[] pos = new char[60];
        char[] mark = new char[12];
    }

    private static char[][] pc00 = {
  {
  1,1,1,0,0},{
  1,0,0,0,0},{
  1,0,0,0,0},{
  0,0,0,0,0},{
  0,0,0,0,0}};
    private static char[][] pc01 = {
  {
  2,2,0,0,0},{
  2,0,0,0,0},{
  2,2,0,0,0},{
  0,0,0,0,0},{
  0,0,0,0,0}};
    private static char[][] pc02 = {
  {
  3,3,0,0,0},{
  3,3,0,0,0},{
  3,0,0,0,0},{
  0,0,0,0,0},{
  0,0,0,0,0}};
    private static char[][] pc03 = {
  {
  4,4,0,0,0},{
  4,0,0,0,0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值