题目给出了一张杨表,要求你能够放上去的最多的骨牌数量。
证明看这里。
只能说妙蛙!
补充一些题解认为显然的证明。
任何一张网格图(相邻的点视作有边),按照 \(i+j\) (下标)的奇偶性划分,可以证明这是一张二分图(有点显然)。
\(\forall (x,y),color(x+1,y)\neq color(x,y),...\),因为相邻格子的下标之和奇偶性都不相同。
那么一张骨牌能够覆盖相邻的两个点,也就是一个黑点和一个白点。
那么,有\(x\)张骨牌,就说明网格图中有\(x\)个白点被覆盖,有\(x\)个黑点被覆盖。
而黑点和白点一定要存在,所以\(x\le min(c_1,c_2)\)(后者是白点、黑点的个数)。
覆盖的点数 \(\le\) 总点数
证明能够取到上界的构造方式:
如题解中右边那张图,就是那个\(45\)度的阶梯图。
观察可得(没必要钻牛角尖),每次删除的都是出现次数较多的那个点。
每次删除之后,我们覆盖删去的那两列。
比如:
都会让图变成更小的阶梯形。而且我们发现,除了删去的白点,其它点都被覆盖到了,也就是说没删的点都被覆盖到了。
看一下这个过程:每次删去一个白点,覆盖两列,最终的结果只可能是:(因为列数的奇偶性不同)
然后你会发现,继续这样操作,黑点都不会被删。
所以上界取得到,这就是最优解。
标签:覆盖,黑点,Domino,白点,Young,奇偶性,骨牌,删去 From: https://www.cnblogs.com/zhangchenxin/p/17813080.html