多米诺翻转

我们的问题从一张 $8\times8$ 的国际象棋棋盘开始。棋盘的一个铺砌 $T$,是指用若干$1\times2$ 的多米诺骨牌不重叠不遗漏地盖住棋盘的一种方法。显然在一个铺砌 $T$ 中,每个骨牌恰好盖住一对相邻的方格,因此总共需要 32 张骨牌。

任给一个棋盘的铺砌 $T$,考虑这样一种局部的操作:选择 $T$ 中一个 $2\times2$ 的正方形,它包含一对平行的多米诺骨牌,然后将这对骨牌翻转 90 度,即把一对水平并排放置的骨牌变成垂直并排放置的(或者反之)。这样一个操作叫做翻转(filp)。

求证:对棋盘的任何两种不同的铺砌 $T_1$ 和 $T_2$,总可以经过若干次翻转把其中一个变成另一个。

研究这类问题有什么意义呢?除去纯粹的数学的趣味性,它在实际研究中也有重要价值。铺砌问题与统计力学中的格点模型有关,一种铺砌的方式就是系统一种可能的状态。这类模型的一个重要问题就是:一个随机的状态是什么样子的?怎样在系统所有可能的状态中随机的取样?如果我们能证明系统的所有状态在某种简单的局部变换下是可以互达的,那么从任意一个状态出发,随机地进行局部变换,根据 Markov 链的理论,随着变换次数的增多会收敛到平稳分布,且遍历所有的状态。这个想法是许多算法的核心。

时间: 2024-10-27 18:59:11

多米诺翻转的相关文章

洛谷 P1282 多米诺骨牌

题目描述 多米诺骨牌有上下2个方块组成,每个方块中有1~6个点.现有排成行的 上方块中点数之和记为S1,下方块中点数之和记为S2,它们的差为|S1-S2|.例如在图8-1中,S1=6+1+1+1=9,S2=1+5+3+2=11,|S1-S2|=2.每个多米诺骨牌可以旋转180°,使得上下两个方块互换位置. 编程用最少的旋转次数使多米诺骨牌上下2行点数之差达到最小. 对于图中的例子,只要将最后一个多米诺骨牌旋转180°,可使上下2行点数之差为0. 输入输出格式 输入格式: 输入文件的第一行是一个正

P1282 多米诺骨牌

P1282 多米诺骨牌 题目描述 多米诺骨牌有上下2个方块组成,每个方块中有1~6个点.现有排成行的 上方块中点数之和记为S1,下方块中点数之和记为S2,它们的差为|S1-S2|.例如在图8-1中,S1=6+1+1+1=9,S2=1+5+3+2=11,|S1-S2|=2.每个多米诺骨牌可以旋转180°,使得上下两个方块互换位置. 编程用最少的旋转次数使多米诺骨牌上下2行点数之差达到最小. 对于图中的例子,只要将最后一个多米诺骨牌旋转180°,可使上下2行点数之差为0. 输入输出格式 输入格式:

洛谷P1282 多米诺骨牌

动态规划 题意: 对多米诺骨牌进行翻转,使其上下值最接近,求最小的翻转次数 1.状态 dp[ i ][ j ] 表示上面那排前i个数 和为 j 所需要的最小的翻转次数 2.状态转移方程 dp[ i ][ j ] = min(dp[ i ][ j ],dp[ i-1 ][ j-a[ i ] ] ) ; dp[ i ][ j ] = min(dp[ i ][ j ],dp[ i-1 ][ j-b[ i ] ]+1 ) ; 3.初始值 dp[ i ][ j ] = inf dp[ 0 ][ 0 ] =

多米诺骨牌题解

题目描述 多米诺骨牌有上下2个方块组成,每个方块中有1~6个点.现有排成行的 上方块中点数之和记为S1,下方块中点数之和记为S2,它们的差为|S1-S2|.例如在图8-1中,S1=6+1+1+1=9,S2=1+5+3+2=11,|S1-S2|=2.每个多米诺骨牌可以旋转180°,使得上下两个方块互换位置. 编程用最少的旋转次数使多米诺骨牌上下2行点数之差达到最小. 对于图中的例子,只要将最后一个多米诺骨牌旋转180°,可使上下2行点数之差为0. 输入格式: 输入文件的第一行是一个正整数n(1≤n

POJ 1135 Domino Effect(最短路 多米诺骨牌)

题意 题目描述: 你知道多米诺骨牌除了用来玩多米诺骨牌游戏外,还有其他用途吗?多米诺骨牌游戏:取一 些多米诺骨牌,竖着排成连续的一行,两张骨牌之间只有很短的空隙.如果排列得很好,当你推 倒第 1张骨牌,会使其他骨牌连续地倒下(这就是短语"多米诺效应"的由来). 然而当骨牌数量很少时,这种玩法就没多大意思了,所以一些人在 80 年代早期开创了另一个 极端的多米诺骨牌游戏:用上百万张不同颜色.不同材料的骨牌拼成一幅复杂的图案.他们开创 了一种流行的艺术.在这种骨牌游戏中,通常有多行骨牌同时

棋盘的多米诺覆盖:Dimer Lattice Model,Pfaff 多项式,Kasteleyn 定理

这次来介绍计数组合学里面一个经典的问题:Dimer Lattice Model.问题是这样的:一个有 64 个方格的国际象棋棋盘,有多少种不同的多米诺骨牌覆盖?这里的覆盖是指不重复不遗漏地盖住整个棋盘. 下图是一种可能的覆盖方式(图片来自 Wiki 百科): 这个问题的答案是 12988816,非常大的一个数字,绝对不是一个一个数出来的.1961 年德国物理学家 Kasteleyn 借助于线性代数中的一个结论首先解决了这个问题,我们接下来就介绍他的方法. ~~~~~~~~~~~~~~~~~~~~

鲁米诺反应

鲁米诺(luminol),又名发光氨.一种在犯罪现场检测肉眼无法观察到的血液,可以显现出极微量的血迹形态(潜血反应).化学名称为3-氨基苯二甲酰肼.常温下是一种黄色晶体或者米黄色粉末,是一种比较稳定的人工合成的有机化合物.化学式为C8H7N3O2,溶液显强酸性,对眼睛.皮肤.呼吸道有一定刺激作用.由于血红蛋白含有铁,而铁能催化过氧化氢的分解,让过氧化氢变成水和单氧,单氧再氧化鲁米诺让它发光.所以鲁米诺广泛应用于刑事侦查.生物工程.化学示踪等领域.

luogu P1282 多米诺骨牌

题目描述 多米诺骨牌有上下2个方块组成,每个方块中有1~6个点.现有排成行的 上方块中点数之和记为S1,下方块中点数之和记为S2,它们的差为|S1-S2|.例如在图8-1中,S1=6+1+1+1=9,S2=1+5+3+2=11,|S1-S2|=2.每个多米诺骨牌可以旋转180°,使得上下两个方块互换位置. 编程用最少的旋转次数使多米诺骨牌上下2行点数之差达到最小. 对于图中的例子,只要将最后一个多米诺骨牌旋转180°,可使上下2行点数之差为0. 输入输出格式 输入格式: 输入文件的第一行是一个正

多米诺(codevs 3052)

题目描述 Description 一个矩形可以划分成M*N个小正方形,其中有一些小正方形不能使用.一个多米诺骨牌占用两个相邻的小正方形.试问整个区域内最多可以不重叠地放多少个多米诺骨牌且不占用任何一个被标记为无法使用的小正方形. 输入描述 Input Description 第一行有两个用空格隔开的正整数M和N. 第二行有一个正整数K,表示共有K个小正方形不能使用.输入数据保证K<=M*N. 以下K行每行有两个用空格隔开的数X和Y,表示第X行的第Y个小正方形不能使用. 输出描述 Output D