2012年4月27日

POJ 1753 Flip Game (递归枚举)

摘要: POJ 1753,题目链接http://poj.org/problem?id=1753,翻译一下整个题目的大概意思:有4*4的正方形,每个格子要么是黑色,要么是白色,当把一个格子的颜色改变(黑->白或者白->黑)时,其周围上下左右(如果存在的话)的格子的颜色也被反转,问至少反转几个格子可以使4*4的正方形变为纯白或者纯黑?主要思路如下:1.对于每个格子,它要么反转0次,要么反转1次(当然,它的邻格子也跟着反转),因为它反转偶数次和反转0次的效果是一样的,同理反转奇数次的效果和反转1次的效果是一样的。2.由于只有16个格子,我们可以选择0个格子,1个格子,2个格子,3个格子..... 阅读全文

posted @ 2012-04-27 19:44 NULL00 阅读(24317) 评论(2) 推荐(1) 编辑

从数组中取出n个元素的所有组合(递归实现)

摘要: 今天在做POJ 1753时,需要枚举一个数组中所有组合。之前也遇到过类似的问题,如求从n个数组任意选取一个元素的所有组合都是想起来比较简单,但是设计成算法却颇费周折。如数组为{1, 2, 3, 4, 5, 6},那么从它中取出3个元素的组合有哪些,取出4个元素的组合呢?比如取3个元素的组合,我们的思维是:取1、2,然后再分别取3,4,5,6;取1、3,然后再分别取4,5,6;......取2、3,然后再分别取4,5,5;......这样按顺序来,就可以保证完全没有重复。这种顺序思维给我们的启示便是这个问题可以用递归来实现,但是仅从上述描述来看,却无法下手。我们可以稍作改变:1.先从数组中A取出 阅读全文

posted @ 2012-04-27 16:35 NULL00 阅读(39748) 评论(4) 推荐(6) 编辑

导航