puzzle(0411)《骨牌》覆盖、染色

2023-10-21 05:50
文章标签 覆盖 染色 puzzle 骨牌 0411

本文主要是介绍puzzle(0411)《骨牌》覆盖、染色,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

一,2格骨牌覆盖问题

1,剪残了的棋盘

2,算法谜题 12 平铺多米诺问题

二,3格骨牌覆盖问题

1,算法谜题 78 直三格板平铺

2,L骨牌覆盖问题

三,4-5格骨牌覆盖问题

1,算法谜题 38 四格骨牌平铺问题

2,智力游戏 打包1

3,智力游戏 打包2

4,智力游戏 打包3

5,日历拼图

6,立方体拼图

四,染色技巧

1,染色的本质

2,4格覆盖问题

3,常见染色方式


一,2格骨牌覆盖问题

1,剪残了的棋盘

不知道为什么,想起了KMP。。。

言归正传,既然待匹配项为1*2的长方形,那么可以把棋盘哈希到整数,分析奇偶性。

这个题目很简单,因为有个很简单的哈希函数:f=x+y,即国际象棋的棋盘。

所以答案是不能。

如果,减掉一个白格子和一个黑格子,那又能不能覆盖呢?

答案是能。

把64个格子弄成1个环

减掉2个格子之后,环变成2个线段。

因为2个格子一白一黑,所以2个线段的长度都是偶数。

所以2个线段都可以用1*2覆盖。

2,算法谜题 12 平铺多米诺问题

        能否用单位长度 2*1 的多米诺牌将 8*8 的方格阵铺满? 里面不包含由两张 2*1 多米诺并行排列而成的 2*2 的正方形。
        答案: 所要求的平铺方法不可能实现。

        本题可用反证法证明。假设这样的平铺方法可以实现, 由于方格板是对称的, 我们假设它的左上角是被如图 4.6 所示的一块横置的多米诺牌 1 所覆盖, 那么, 第二行第一列的方格必然是被一块坚直排放的多米诺牌覆盖, 因此, 同行第二列会是一块横放的多米诺牌。按照这个思路推演下去, 我们会得到图 4.6 所示的平铺图。 在多米诺牌 13 之下放一块横置的多米诺牌, 变成了唯一的选择, 这与没有两张多米诺牌并行排列形成 2*2 的正方形的条件矛盾。

二,3格骨牌覆盖问题

1,算法谜题 78 直三格板平铺

 一个直三格板是一个 3 *1 的瓦片平铺。很显然, 只要 n 能够被 3 整除, 任何人都能够通过直三格板平铺成一个 n *n 的正方形。那么, 对于一个大于 3 而又不能被 3 整除的 n 来说, 是否能够利用直三格板和一个叫做单格板的 1 * 1 瓦片平铺, 来构成一 个 n *n 的正方形?

2,L骨牌覆盖问题

边长为2^k的正方形,少了一个格子,如何用L型骨牌覆盖?

可以采用分治法:

三,4-5格骨牌覆盖问题

1,算法谜题 38 四格骨牌平铺问题

2,智力游戏 打包1

智力游戏

 

这一关,就是要把所有的木块不重叠的放进正方形。

因为正方形的边长为8,所以有64个格子。

对于木块,除了正方形之外,另外12个都有5个格子,所以一共也是64个格子。

所以最后应该是恰好铺满才对。

答案:

3,智力游戏 打包2

 

规则同上,但是木块不一样,这一关,木块是11个一样的木块,所以最后会有9个空格子。

答案:

4,智力游戏 打包3

5,日历拼图

https://blog.csdn.net/nameofcsdn/article/details/123765415

6,立方体拼图

根据X算法算出来的答案可以拼成立方体:

 

 

 

 

四,染色技巧

1,染色的本质

染色的本质是把整个平面划分成若干个集合,根据每个部件在各个集合中的数量满足的条件,推出整体满足的数量规律。

当然,一般划分都是很有规律的。

2,4格覆盖问题

问题:用1个2*2和15个1*4可以覆盖8*8吗?

答案是不能,有2类染色法。

第一类,使得2*2为奇,1*4为偶

第二类,使得2*2为偶,1*4位奇

这2个图都强有力的说明了题目的答案是不能。

3,常见染色方式

棋盘染色法的分类与应用

这篇关于puzzle(0411)《骨牌》覆盖、染色的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/252360

相关文章

最大流=最小割=最小点权覆盖集=sum-最大点权独立集

二分图最小点覆盖和最大独立集都可以转化为最大匹配求解。 在这个基础上,把每个点赋予一个非负的权值,这两个问题就转化为:二分图最小点权覆盖和二分图最大点权独立集。   二分图最小点权覆盖     从x或者y集合中选取一些点,使这些点覆盖所有的边,并且选出来的点的权值尽可能小。 建模:     原二分图中的边(u,v)替换为容量为INF的有向边(u,v),设立源点s和汇点t

POJ3041 最小顶点覆盖

N*N的矩阵,有些格子有物体,每次消除一行或一列,最少要几次消灭完。 行i - >列j 连边,表示(i,j)处有物体,即 边表示 物体。 import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import java.io.PrintWriter;impo

Minimal coverage -uva 覆盖线段,贪心

一道经典的贪心问题,具体方法就是将(an,bn)区间,按照an从小到大的顺序进行排序,之后从0开始, 取最大的有效区间,这里用到了结构体的快排,否则可能会超时. #include<stdio.h>#include<stdlib.h>#include<string.h>#define MAX_SIZE 100000 + 10#define BOTTOM -50000 - 10str

HDU 1097 A hard puzzle(规律)

题目: http://acm.hdu.edu.cn/showproblem.php?pid=1097 题意: 求a的b次方的最后一位。 题解: 直接从例子入手, 第一组数据 7 66,结果如下(只要最后一位所以模10) 7 9 3 1 7 9··· 循环节为4,即结果在4个数值内循环出现。 第二组数据 6 800,结果如下 6 6 6 6··· 循环节为1 ···

过滤器:覆盖过滤器如何在凝结水处理系统中应用

本文介绍了覆盖过滤器的基本原理,阐述了覆盖过滤器处理凝结水中悬浮物和胶体的工艺流程及铺膜、过滤、爆膜等环节的操作规范。指出覆盖过滤器在运行中存在铺不上膜、铺膜不匀、脱膜等常见的故障并提出处理方法。   0·引言   凝结水处理系统设置覆盖过滤器的目的是除去凝结水中的金属腐蚀物及油类等杂质。这些杂质通常为悬浮颗粒和胶体,如果不被滤除,会污染离子交换树脂,反冲洗过滤器原理使其交换量下降,工作周

AcWing907. 区间覆盖

参考的视频讲解:↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 【贪心算法08-区间问题03-区间覆盖】 每次贪心就是选择左端点里面<起始端点里面右边界最大的,这样就是保证了最少区间个数! 然后每次迭代都会更新一次起始端点st,反复运用本算法。 一定要仔细看视频讲解!!! #include<iostream>#include<algorithm>#define N 100010#define INF 2

牛客网《剑指Offer》 矩形覆盖

题目描述 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? class Solution {public:int rectCover(int number) {if(number==0) return 0;if(number==1) return 1;if(number==2) return 2;retu

【HDU】3861 The King’s Problem 强连通缩点+有向图最小路径覆盖

传送门:【HDU】3861 The King’s Problem 题目分析:首先强连通缩点,因为形成一个环的王国肯定在一条路径中,这样才能保证拆的少。 然后缩点后就是DAG图了,由于题目要求的是最小路径覆盖,那么二分匹配即可。 代码如下: #include <cstdio>#include <cstring>#include <algorithm>#includ

【HDU】5574 Colorful Tree【子树染色,询问子树颜色数——线段树+bit+lca+set】

题目链接:【HDU】5574 Colorful Tree 题目大意:对一个子树染色,询问一个子树的颜色数。 题目分析: set set维护每种颜色所在的 dfs dfs序区间,修改均摊 nlogn nlogn。 #include <bits/stdc++.h>using namespace std ;typedef long long LL ;typedef pair < int , i

二分图最小点覆盖数——POJ 3041

对应POJ题目:点击打开链接 Asteroids Time Limit: 1000MS Memory Limit: 65536KTotal Submissions: 15911 Accepted: 8662 Description Bessie wants to navigate her spaceship through a dangerous asteroid