来自《组合数学》第一章内容。
这本书看着感觉像科普书,言语通俗,挺好玩的,是少数我放不下手的学术类书之一。科普类的书其实都挺好看的,跟一些文学著作一样需要带着对文字的思考,带着脑子想问题,在作者给出证明之前先解决问题,确实是一件快乐的事。
学术类的书中也不缺一些恶意的书籍,用我不懂的名词解释另一个我不懂的名词,反复递归,由于我太菜了,所以还是不会。不过催眠效果到是极好,不会中毒。(悄咪咪告诉你我中毒夜战到天亮一夜不睡的战绩,咳咳咳,要低调(球球不要有哪位老师家长看到这)
当然只是个人观点,那些我觉得枯燥看不懂的书往往都很有用。
认真看一本书,感觉自己就像扫描仪,书中的哪一行语句哪一个段落,都渐渐清晰明朗。而书中仅用语言描绘的大千世界更是令我深陷。
这篇博就相当于读书笔记吧,虽然书没在身边,而且书根本就不是自己的......(我才不会承认我看的书大部分都是借同学的
但是此刻,感觉书就翻开在我面前了,重新省阅每一行每一列,以下为我自己的复述和整合。
棋子覆盖问题
完美覆盖:无重复无遗漏地覆盖。
1.引入问题:求一个多米诺骨牌对一个8*8方格图完美覆盖的方案数。拓展成n*m呢。
这题是不是可以编程解决啊,是不是有点眼熟啊,是不是感觉在哪见过呀。
互讲的时候豆哥的题跟这有点像啊。
详情请见未填完坑的mon...(状压dp/搜索)
2.求一个多米诺骨牌(二格牌)对一个n*m的图形完美覆盖的充要条件。
多米诺骨牌是二格牌,即由两个格子构成的牌牌。
如果能将这张方格图覆盖,我们不妨假设用了k张骨牌来拼凑,那么易得出式子:n*m = 2*k。
n和m中必有一个是偶数(有二这个因子)。
以上口头简要证明了:若能完美覆盖则n,m必有一个是偶数;下面证明若n或m中有一个是偶数,则n*m的方格图一定能被完美覆盖。
其实非常地显然,我们可以轻易构造出一种满足完美覆盖的图,不妨假设n为偶,n = 2*k,则在n这一行横着平铺k个多米诺骨牌,高度为一。
我们只需继续这样平铺下去即可。无论m为奇数或偶数,都能满足完美覆盖。
从数学的角度讲以上证明是灰常不严谨的,但是OI不需要证明,我们感性理解就好。(OI真是个好东西)
3.我们继续扩展问题,求一个b格牌对n*m的方格图完美覆盖的充分必要条件。
b格牌就是由b个格子构成的牌牌。(长b宽1)
众所粥资,组合数学的证明离不开数学归纳法,而数学归纳法离不开猜想。(个人认为数学归纳法真的是挺奇妙的,明明是猜出来的,然后就能骗过去了(猜的是错的有时也能证明对))然后我们猜一下这题的结论吧,猜不出来举几个栗子在纸上画画图什么的,找找规律。
猜想:b格牌对n*m方格图完美覆盖的充分必要条件是b|n*m.
我觉得证明有点容易有点显然有点套路,我能不能不证啊。
4.我们定义一个n*m方格图能被一个b格图同一方向(就是都横着或者都竖着)完美覆盖成为平凡完美覆盖。而每一个b格图能满足n*m方格完美覆盖的,都具有完美平凡覆盖。这个性质非常的显然,详情请看第三。
抱歉我有点懒。
大噶动动笔哈。
然后我就在思考另一个问题了(一下才是真正的问题):如何编程求出对于一个n*m方格图,能用b格牌完美覆盖的方案数。
这……由于最近要noip了,结果我还是灰常的喜欢水一些科普书搞一些奇奇怪怪的研究,我还有很多坑没有填啊,可是noip只有一个月了,哦吼我要完蛋了。
所以这个坑等我noip完之后再填吧,请各位大佬在我未解决之前有兴趣的,私聊或评论,万分感谢。