大王——有趣干货集合

1.平面上有n条折线,这些折线最多能将平面分割成多少块?

递推公式 f[i] = f[i - 1] + 4 * (n - 1) + 1 (初始化 f[0] = 0)

考虑新进来的一条折线,有2条边,每条边都可以和之前的(2 * i)条边产生交点,即把自己分成了(4 * i + 1)个部分。

而每个部分相当于将它所在的那个平面劈成两半,即增加了一个平面。(真正的思想!)

因此递推公式如上。

附加:如何判断两部分在同一个平面?(可以从一个部分走到,或者说画一条线到,另一个部分,则为同一个平面)

根据叠进式的算法,可以得到:

 f[n]

= n + ∑ 4(i - 1) + 1

= n - 4n + 4n(n + 1) / 2 + 1

= 2n(n + 1) - 3n + 1

= 2n2 - n + 1

因此,根据这样的思路,"Z"字形甚至更复杂的图形都可以迎刃而解了。

-----------------------------------------------------------------------------------------------------------------------------分割线--------------------------------------------------------------------------------------------------------------------------------------------

2.有一个n*m的棋盘,其中每个格子分布着一些整数。

定义一种操作:将一行或者一列的数全部变成它的相反数。

求证:对于任何情况,都能在有限次操作下使得每行每列的和都非负。

证明:

定义一个S,为棋盘中每一行的数之和 + 每一列的数之和。

若不满足题意,则必有一行或一列的数之和S1 < 0。假设为某一列。

则就将此列的数全部取反。

考虑S的变化值。

在那一列中,所有数被取反,S增加2*(-s1)。

对于每一行的变化值deltai,Σdelta= 2*(-s1)。

因此每一次变化,S都增加了4*(-s1)。

S的极限是什么呢?其实就是所有的负数都变成了正数。有限的!

什么时候无法再进行操作了呢?即是所有行,所有列的数之和都非负时。(这时就满足题意了!)

我们再捋一下这个逻辑关系(只考虑S的变化):

只要此时情况还未满足题意,则S肯定能继续增大。而S的极限又是有限大的,并且如果达到了极限,也满足题意。

因此当S取到最大值时,每行每列的数之和肯定非负(否则还能继续进行操作使S增大!),而且,操作次数是有限的,因为S的极值是有限的!

证毕。

其实这个“逻辑关系”就是匈牙利算法——二分图最大匹配的逻辑基础。这里的“某一行或某一列的为负数的和”对应一条增广路,一次操作就是将增广路上的所有边全部取反,而极限就是所有节点都被匹配到了,即min(n,m)。什么时候操作停止呢?就是没有增广路径时。这时,二分图匹配数的最大值便求出来了。因此匈牙利算法很简单,对于每个节点,查询增广路径->取反增广路上所有边。这样最后一定没有增广路存在,整个二分图已经稳定下来了。(仔细想象hungary算法具体过程,为什么?)最大值也就水落石出了。

-----------------------------------------------------------------------------------------------------------------------------分割线--------------------------------------------------------------------------------------------------------------------------------------------

3.有n个人,n种颜色,每个人头上戴着任意一颜色的帽子。他们只能看到除了自己以外的人的帽子的颜色,而且不能互相交流。每个人需要猜自己头上帽子的颜色。请设计一种方法,使得至少有一个人能够猜中。

首先,将n种颜色量化,对应1-n。将n个人也对应为1-n量化,一种很重要的数学方法!遇到类似的情况都可以量化,至少是个不劣的转化

接下来是方法:第一个人写出一个数字,使得他写出的数字加上看到帽子对应的数字之和 mod n == 0。同理,第二个人写出一个数字,使得他写出的数字加上看到帽子对应的数字之和 mod n == 1。第i个人写出的数字应使得他写出的数字加上看到帽子对应的数字之和 mod n == (i - 1)。

事实上,真正的∑ai mod n 必然有一个余数。因此上述的人中一定有一个人能猜中,而且一定只有一个人能猜中。

这道题利用了量化、余数抽屉原理的思想。

-----------------------------------------------------------------------------------------------------------------------------分割线--------------------------------------------------------------------------------------------------------------------------------------------

猜你喜欢

转载自www.cnblogs.com/StephenCurry30/p/10585427.html
今日推荐