03-连连看-连通分析

连通分为3中

1.直连。

分为两种情况,一种两者之间相邻。另一种是两者之间已经没有有效的Block

2.一个折点

将两个点视为一个矩形的对角顶点,另外一对对角顶点只要有一个符合直连的情况,则符合一个折点的连通条件

3.两个折点

从图中所示,可以将两个折点的问题变成一个折点的问题。

即:

将第一个选择点作为种子点,然后沿着4个方向,在棋盘中分别搜索。

沿着一个方向,每次前进一步,判断是否为一个折点连通。如果是,则表明两个折点连通成立。当然在前进方向上如果遇到一个有效的Block,则该方向上搜索失败。

而如果沿着一个方向一直到了边界,则越过边界,找到对应的另一个折点,判断折点和两一个选择点是否水平直通即可。

 

该算法其实最重要的思路是,将复杂的问题,递归简化为简单的问题解答。

 

总的来说,判断是否连通:

 
源码下载地址:
 
 
 
 
 
posted @ 2016-02-04 12:03  sharpfeng  阅读(441)  评论(0编辑  收藏  举报