2 shunfurh shunfurh 于 2017.01.06 23:44 提问

关于连连看的算法问题怎么解决?

Problem Description
I like playing game with my friend, although sometimes looks pretty naive. Today I invent a new game called LianLianKan. The game is about playing on a number stack.
Now we have a number stack, and we should link and pop the same element pairs from top to bottom. Each time, you can just link the top element with one same-value element. After pop them from stack, all left elements will fall down. Although the game seems to be interesting, it's really naive indeed.

To prove I am a wisdom among my friend, I add an additional rule to the game: for each top element, it can just link with the same-value element whose distance is less than 6 with it.
Before the game, I want to check whether I have a solution to pop all elements in the stack.

Input
There are multiple test cases.
The first line is an integer N indicating the number of elements in the stack initially. (1 <= N <= 1000)
The next line contains N integer ai indicating the elements from bottom to top. (0 <= ai <= 2,000,000,000)

Output
For each test case, output “1” if I can pop all elements; otherwise output “0”.

Sample Input
2 1 1 3 1 1 1 2 1000000 1

Sample Output
1 0 0

1个回答

caozhy
caozhy   Ds   Rxr 2017.01.06 23:49
已采纳
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
关于《连连看》的算法研究和演示Demo
连连看曾经是一款非常受欢迎的游戏,同时它也是一款比较古老的游戏。看到这里你千万不要认为本篇文章打算讨论《连连看》的历史以及它取得的丰功伟绩。恰恰相反,在这篇文章中我们打算讨论该游戏背后的实现思想,包括它定义的游戏规则,以及游戏的实现算法。作为应用,我们还将利用Java代码实现一个通用的《连连看》算法,并使用Java Swing框架创建一个演示实例。 1《连连看》的游戏规则是如何定义的?
连连看寻路算法的思路
图-:0, 0, 0, 0, 0, 0, 0, 0 , 0, 00, 8, 0, 0, 0, 0, 0, 0 , 0, 00, 0, 0, 0, 0, 0, 0, 0 , 0, 00, 0, 0, 0, 0, 0, 0, 0 , 0, 00, 0, 0, 0, 0, 0, 0, 0 , 0, 00, 0, 0, 0, 0, 0, 0, 0 , 0, 00, 0, 0, 0, 0, 0, 0, 0
连连看游戏的核心算法
最近想做一个连连看的游戏,但一直没动手,因为觉得自己的思路还不够成熟,我做一个小游戏,一般是思路比较成熟了,才会去动手做,哈哈。我觉得这是对了的,是应该先考虑周全了再动手做,现在做大项目都提倡先写文档,详细的设计思路(越详尽越好),再来动手,不然会手忙脚乱的,经历一次次的推倒重来,做小游戏也是一样的道理。好了废话就此打住。         做连连看游戏,要解决的基本问题有两个:
连连看程序判断消除的算法
连连看的消除有以下几种情况: 1.被选择的两个图形处于一条直线上时:数组的两个坐标中有一个是相同的,凭此即可判断; 2.被选择的图形经过一次拐点可相连时:可以将这两个图形抽象为两个点,这两个点可以视为一个矩形的两个顶点,而这两个顶点位于矩形的对角线上,令图形一为A,图形二为B,此时在这个矩形的边上,必存在一对邻边为从A到B的通路,假设A为a[1][1],B为a[3][3],则当它们能通过一个拐
JavaScript游戏之连连看连线算法实例
JavaScript游戏之连连看连线算法实例
连连看--详解及实现
虽然使用C#写的,但是其设计思路及核心的消除算法可借鉴并由其他语言轻松实现。解释也尽量详细,希望能帮到大家。 代码中解释也十分详细,嫌文章太长可直接看代码。
连连看消除算法的C++代码实现
连连看消除实现
编程之美1.14——连连看工程(含全部代码,伪哈希+BFS)
编程之美迄今为止最为详细的讲解,包含连连看游戏的C++所有代码片段 伪哈希+BFS+动态规划 绝对值得收藏,绝对值得浏览 我是不是该开个竖屏的专栏了 其余的扩展问题还在思索,会不定期的更新
MFC实现连连看三:消子算法
连个位置的图片能否消除,有三种情况:1.一条直线连接,这种也是最简单的一种消除方法bool LinkInLine(CPoint p1, CPoint p2) { conner1.x = conner1.y = -1; // 记录拐点位置 conner2.x = conner2.y = -1; BOOL b = true; if (p1.y == p2.y) // 两个
连连看核心算法代码
public class Gamelogic { private final static int UP = 0; private final static int DOWN = 1; private final static int LEFT = 2; private final static int RIGHT = 3; private int ROW;