设n=n1*k+s,0
123„K123„k„„123„S234„1234„1„„234„S+134„„234„„2„„34„„:
:
:
:
:
:
:
„„:
:
:
K1„„k-1K1„„k-1„„k1„„S+k-1123„K123„K„„123„S234„1234„1„„234„S+134„„234„„2„„34„„:
:
:
:
:
:
:
:
:
:
K1„„k-1K1„„k-1„„k1„„S+k-1:
:
:
:
:
:
:
:
:
:
„„:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
123„K123„K„„123„S234„1234„1„„234„S+134„„234„„2„„34„„:
:
:
:
:
:
:
„„:
:
:
Rr+1„„R+k-1r„„„r+k-1„„Rr+1„„r+s-1
约定r>=s
由上面的定理1,可彻底解决m*n棋盘的p*q矩形完全覆盖问题
定理2m*n棋盘存在p*q矩形的完全覆盖充分必要条件是m,n满足下列条件之一:
(i)p|x且q|y
(ii)p|x,q|x,且存在自然数a,b,使y=ap+bq
其中{x,y}={m,n}
异型覆盖
例2设有m*n的棋盘,当m*n为奇数时,尝试删去一个格子,剩下部分用若干1*2的矩形覆盖;当m*n为偶数时,尝试删去两个格子,剩下部分用若干1*2的矩形覆盖。
分析:
(1)先来考虑m*n为奇数的情况
一方面,将棋盘自然染色。
无论怎么放,一个1*2的矩形必盖住一个黑格和一个白格,而棋盘上的黑格比白格多1,于是只能去掉一个黑格(即偶格)
另一方面,设去掉偶格为a(i,j),用构造法必能得到可行解
1)I与j同为奇数2)I与j同为偶数
2
2
331
1
44
(2)再考虑m*n为偶数的情况
类似地,由自然染色法得知,去掉的两格必定异色,即一个奇格,一个偶格(不然两种格子总数不等)
另一方面,用构造法,将用一些粗线将棋盘隔成宽为1的长条路线,使从任一格出发可以不重复地走遍棋盘并回到出发点。
B
A
针对染色法,上面的例子都是利用“各类颜色格子总数必须相等”这一条件推出矛盾,但又些时候,只考虑这个条件是不够充分的。
例38*8棋盘剪去哪个方格才能用21个1*3的矩形覆盖,
分析:
蓝色:
21个白色:
22个黑色:
21个
考虑到对称性,只有剪去a(3,3)、a(3,6)、a(6,3)、a(6,7)中的某一个才能满足题意。
小结
覆盖类问题其实是一个难度较大的课题,这里只讨论了一些简单的情况,以说明染色法与构造法的应用
需要补充的是,染色法的种类形形色色、五花八门。
考虑到可推广性和易操作性,本文只着重研究了“间隔染色法”(即自然染色法的推广)
马的遍历
马行走规则:
从2*3的矩形一个角按对角线跳到另一个角上
棋盘中马的遍历问题分两类
(1)马的哈密尔顿链
(2)马的哈密尔顿圈
马的哈氏链
通常有四种方法
1贪心法——每一步跳向度最小的点
2分治法——将棋盘分成几个小棋盘,分别找哈氏链,再连接起来
3镶边法——先在一个小棋盘中找到哈氏链,然后在棋盘四周镶边,已产生大棋盘的哈氏
链。
按上述方法不难得到下面结论
n*n棋盘存在哈氏链的充要条件是n>3。
马的哈氏圈
例4求n*n棋盘的哈氏圈分析将棋盘自然染色,考察无解情况。
马无论怎么走,都必须按黑格,白格,黑格,白格((((((如此循环。
由于要回到起点(起点与终点同色),途经两种颜色的格子数必相等,可知n为奇数时无解。
因为大小限制,n<6时也无解
当n>=6且为偶数时,用镶边法构造
假设(n-4)*(n-4)的棋盘已找到哈氏圈
1)n除以4余2时,
在内矩形四个角(A、E、I、M)上分别开口。
CODP116192674
AM2025251827BN15261783624213211289FJ351423303312
EI223134131029
HL
GK
1将C与D所在的外回路与“内矩形”的回路在A、B上对接,变成A-C-(((-D-B。
2将G与H所在的外回路与“内矩形”的回路在E、F上对接,变成E-G-(((-H-F。
3将K与L所在的外回路与“内矩形”的回路在I、J上对接,变成I-K-(((-L-J。
4将O与P所在的外回路与“内矩形”的回路在M、N上对接,变成M-O-(((-P-N。
{在这里,要注意一个问题,就是作为基础矩形的“内矩形”的回路,首先要满足:
A的下一步到B,E的下一步到F,I的下一步到J,M的下一步到N。
只有这样,构造成的新矩形才能继续作为“内矩形”按上述规则向外扩展。
现给出满足要求的基础矩形的一组解(N=6)}
2)n除以4余0时
在内矩形四个角(A、E、I、M)上分别开口。
CO
DP
AM
154473849523126BN
463925332272251556437483502530404556332823421633661445720292460413415125819FJ356243581710136EI42591611147189HL
GK
1将C与D所在的外回路与“内矩形”的回路在A、B上对接,变成A-C-(((-D-B。
2将G与H所在的外回路与“内矩形”的回路在E、F上对接,变成E-G-(((-H-F。
3将K与L所在的外回路与“内矩形”的回路在I、J上对接,变成I-K-(((-L-J。
4将O与P所在的外回路与“内矩形”的回路在M、N上对接,变成M-O-(((-P-N。
一个猜想:
m*n(m<=n)棋盘不存在哈氏圈的充要条件是:
m,n满足下列条件之一
(1)m,n都是奇数
(2)m=1,2或4
(3)m=3且n=4,6,8
其它应用
例5蠕虫世界(Uva)
蠕虫在一张N*N的网上爬行。
每个网格上有一个数字,蠕虫不能经过相同的数字两次。
开始的时候,蠕虫任意选择一个格子作为起始点。
它爬行只能沿水平或竖直方向,且不能超出网外。
蠕虫如何移动才能到达尽可能多的网格呢,下面是一个样例。
分析:
采用“染色法”贪心出一个上界。
1自然染色
设Tfree,Tblack,Twhite分别记录三类格子数量2
对每一种数字(1,2,3„„)分析
1)只存在标有该数字的白色格子,Twhite,Twhite+1
2)只存在标有该数字的黑色格子,Tblack,Tblack+1
3)存在标有该数字的黑白两色格子,Tfree,Tfree+1
3估价上界
(Twhite,Tfree)*2,1(Twhite,Tfree,Tblack),Lmax,,Tblack,Twhite,Tfree(Twhite,Tfree,Tblack),
(假设Twhite<=Tbalck,否则交换即可)
结语
存在性问题——〉染色法
可行性问题——〉构造法
在以棋盘为模型的问题中,综合运用这两种方法,双管齐下,往往能收到事半功倍的效果~
谢谢
许多MM在减肥的过程中困难重重,用尽方法却瘦不下来,其实只有在数不清的技巧,推敲中找到属于跟适合自己的最佳方式,才能在健康的瘦身道路上走下去,下面一些瘦身的小技巧,一定可以帮到你~
1、慢慢吃
我们都曾在美味佳肴面前狼吞虎咽。
等你发现自己吃撑的时候,已经为时太晚了。
然而当发现自己因为吃得太撑感到不适时总是为时已晚。
这是因为,我们的大脑需要大概20分钟,才能接收到“已经吃饱了”的讯息。
营养学专家WesleyDelbridge表示。
“在吃第二碗饭前,不妨先喝上一杯水,等个十几分钟。
”他说,“让你的大脑告诉你,你是否已经吃饱了。
“
2、切碎你的食物
不论是享用牛腩、三文鱼、面包圈还是鸡蛋卷,在食用之间都可以尝试把这些食物切成碎片。
近期,美国亚利桑那州立大学的研究表明,被给予切好的面包圈的参与者,比直接食用完整面包圈的参与者,在试验中吃的要少得多。
在20分钟后的免费午餐招待中,那些吃面包圈切片的参与者仍然吃的比较少。
研究人员表示,预先切好食物能使食用过程中的每一次咀嚼都更加舒适,因此能够一定程度上实现对饮食量的掌控。
3、饭后刷牙、剔牙
“一旦结束午餐或晚餐,应当立刻使用牙刷或者牙线。
”匹兹堡NutritionCheckUp的营养学家HeatherMangieri如此建议
道。
当你感到牙齿清洁、口气清新时,你就不会再没心没肺的呆在厨房吃个不停了。
久坐族常常都有恼人的“游泳圈”,不仅仅影响美观,还很难减,这可怎么办呢,来看看小编推荐的10个最佳的瘦腰运动吧~总有适合你的一种,还等什么,赶紧动起来吧~
1、简易坐扭转
这个体式可以很好的帮你拉伸脊柱并消除背痛,然后帮你按摩腹部减少腰部的赘肉,来促进消化器官的蠕动。
盘腿坐在一块折叠的毛毯上,骨盆水平,挺直腰背。
吸气向上拉长脊柱,随着呼气的时候拉伸着向右后方转,左手放在右大腿上,右手放在身后毛毯边缘,保持30秒,然后收回。
相反方向重复同样的动作。
2、半鱼王
这个扭转可以很好的作用在腹部区域,把横膈膜及腹腔带进行一个强烈的扭转,它的扭转力度会非常强大,帮助收紧腰腹肌肉。
这是一个更为高级的扭转体式。
我们需要让一腿折叠在下方,让脚掌竖着立在地面上,上面的脚跨过来放在膝盖的外侧,脚尖和膝盖在一条线上,上面腿应该是垂直的。
可以把臀部下面垫上一个毯子,以防骨盆不会向后部倒,使背能向上立起来,随
着呼气的时候转,同样吸气拉伸脊柱,呼气把中背部推入体内,增加扭转。
快速瘦腰一:
“椅子运动”像是坐在椅子上那样,双手做扶扶手的姿势,后背靠在椅背上,注意其实没有椅子,只是自己想象着坐在椅子上。
之后身体慢慢下蹲,感觉屁屁真的坐在椅子上一样。
在做这个动作时腰部要用力,脚的位置不动,让大腿来承受身体的重量。
3、自行车运动
身体平躺在地板上,双手放于脑后,左腿膝盖弯曲并尽量向胸部靠近,右手肘向左腿膝盖靠近,右侧肩榜随之抬起。
之后换另一侧重复进行这个动作。
4、交错腿运动
身体平躺在地板上,双腿交叉,双手抱头,之后交叉的双腿慢慢抬起,尽量向上抬,使双腿与地面呈直角,头部也随之慢慢抬起。
当抬到最高点时停顿呼吸一次,之后重复进行这个动作。
5、健身球运动
让自己躺在健身球上,使下背部接触健身球,双手交叉放于胸部,也可以抱头。
腰部用力抬起上身,使身体离开健身球,注意保持平衡。
之后再躺下来,重复进行这个动作,像在健身球上做仰卧起坐一样,对于瘦腰腹很有效果。
6、蜘蛛侠式
这款动作可以运用到腹肌上的全部肌肉,也能兼顾到小腿、大腿、胸部、背部、手臂、肩膀的肌肉。
先是俯卧撑的姿势,手
臂要伸直,保持手肘和肩膀在同一条直线上,从侧面向前提拉右腿,如图中的方式,让膝盖尽量靠向右臂手肘,到极限的位置时再放下腿;之后换左腿,提拉再伸直,循环反复,两侧各15个算一组。