Domino for Young

发布时间 2023-11-06 16:43:39作者: Zlc晨鑫

题目给出了一张杨表,要求你能够放上去的最多的骨牌数量。

证明看这里

只能说妙蛙!

补充一些题解认为显然的证明。

任何一张网格图(相邻的点视作有边),按照 \(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\)度的阶梯图。

观察可得(没必要钻牛角尖),每次删除的都是出现次数较多的那个点。

每次删除之后,我们覆盖删去的那两列。

比如:

都会让图变成更小的阶梯形。而且我们发现,除了删去的白点,其它点都被覆盖到了,也就是说没删的点都被覆盖到了。

看一下这个过程:每次删去一个白点,覆盖两列,最终的结果只可能是:(因为列数的奇偶性不同)

然后你会发现,继续这样操作,黑点都不会被删。

所以上界取得到,这就是最优解。