zoukankan      html  css  js  c++  java
  • 竞赛生每日一题(212) 徐康华竞赛优学

    一个棋盘放棋子的问题

    从8n*8n(n是正整数)方格棋盘上选出16n格,使每行每列含有其中的两格,证明:可以把16n个格子,(8n白8n黑)放置在所选的方格上,使每行每列都恰好有一个白的和一个黑的棋子。

    解答:

    如果每行每列都恰好有一个白的和一个黑的棋子,易知交换某两行/列后每行每列还是恰有一个白的和一个黑的棋子。所以无论挑选的是哪16n个格子,总可以交换为图A这种情况。

    A       B     C    D    E

     此时,有两种可能,一种是图B这种情况,(1,1)有格子。此时如果把(0,0)、(1,1)染黑,(0,1)、(1,0)染白,就可以使第1 2行/列满足题意。所以如果红色方框这一部分再每行每列还是恰有一个白的和一个黑的棋子,那么就满足题意了。对于红色方框这一部分,总可以交换成图C这种情况,如果(4,4)有格子的话,那么问题就转化为了蓝色方框可不可以做到每行每列还是恰有一个白的和一个黑的棋子。如果一直是交换完行/列后,右下方的那个位置有格子的情况,那么最后的格子情况如图E。显然可以涂成每行每列都恰好有一个白的和一个黑的棋子。

    F    G  H

    再考虑另一种情况,(1,1)没格子。那么必然可以通过交换行/列得到图F这种情况。继续分析,如果此时(3,3)没有格子,那么必然可以通过交换行/列得到图G这种情况。如果一直是交换完行/列后,右下方的那个位置没格子的情况,那么最后的格子情况如图H。显然可以涂成每行每列都恰好有一个白的和一个黑的棋子。

     上面两种情况是极端情况,一般情况下,交换完行/列后,右下方的那个位置有无格子是随机的,但所有的情况肯定都是上面两种情况的组合,无论这个组合的顺序是什么,也无论上面两种情况各出现多少次,显然都能够涂成每行每列都恰好有一个白的和一个黑的棋子。

    综上所述,无论怎么挑选格子,都可以满足题意,证毕。

  • 相关阅读:
    整数转换成字符
    html总结(一)
    ssh服务
    原码反码补码图形化注意
    关于副本机制
    win8设置自动关机
    python制作的翻译器基于爬取百度翻译【笔记思路】
    python多线程扫描爆破网站服务器思路【笔记】
    用python实现多线程爬取影视网站全部视频方法【笔记】
    利用Python3的requests和re库爬取猫眼电影笔记
  • 原文地址:https://www.cnblogs.com/lau1997/p/12656206.html
Copyright © 2011-2022 走看看