首页学历类考试大学计算机科学
(简答题)

下图是由14个“+”和14个“-”组成的符号三角形。2个同号下面都是“+”,2个异号下面都是“-”。 在一般情况下,符号三角形的第一行有n个符号。符号三角形问题要求对于给定的n,计算有多少个不同的符号三角形,使其所含的“+”和“-”的个数相同。请针对符号三角形问题设计一个尽可能高效的算法。

正确答案

回溯法实现
对于符号三角形问题,用n元组x[1:n]表示符号三角形的第一行的n个符号。当x=1时,表示符号三角形的第一行的第i个符号为“+”号;当x=0时,表示符号三角形的第一行的第i个符号为“-”号;1≤i≤n。由于x是二值的,所以在用回溯法解符号三角形问题时,可以用一棵完全二叉树来表示其解空间。在符号三角形的第一行的前i个符号x[1:i]确定后,就确定了一个由i*(i+1)/2个符号组成的符号三角形。下一步确定了x[i+1]的值后,只要在前面已确定的符号三角形的右边加一条边,就可以扩展为x[1:i+1]所相应的符号三角形。最终由x[1:n]所确定的符号三角形中包含的“+”号个数与“-”号个数同为n*(n+1)/4。因此在回溯搜索过程中可用当前符号三角形所包含的“+”号个数与“-”号个数均不超过n*(n+1)/4作为可行性约束,用于剪去不满足约束的子树。
对于给定的n,当n*(n+1)/2为奇数时,显然不存在所包含的“+”号个数与“-”号个数相同的符号三角形。
复杂度分析
计算可行性约束需要O(n)时间,在最坏情况下有O(2n)个结点需要计算可行性约束,故解符号三角形问题的回溯算法所需的计算时间为O(n2n)。

答案解析

相似试题

  • (单选题)

    如图所示,上图的效果是通过“渐变映射”命令得到的,通过下图中4个渐变编辑中的哪一个可以达到上图的效果?()

    答案解析

  • (单选题)

    如图所示,上图的效果是通过“渐变映射”命令得到的,通过下图中4个渐变编辑中的哪一个可以达到上图的效果()

    答案解析

  • (简答题)

    编程求1000内的“完数”。“完数”指一个数恰好等于它本身的因子之和。 例如 28=14+7+4+2+1

    答案解析

  • (单选题)

    下图为某一视图,其中“TOP@12”称为:()

    答案解析

  • (判断题)

    1个字节是由8个二进制数位组成。

    答案解析

  • (简答题)

    请将下图的DFD转换为软件结构图(注:图中用○+表示“或者”)。

    答案解析

  • (多选题)

    如图所示,下图中流星划过的效果是由画笔直接添加的,请问在使用画笔时可能会用到以下哪些选项()

    答案解析

  • (单选题)

    设顺序表有19个元素,第一个元素的地址为200,且每个元素占3个字节,则第14个元素的存储地址为()。

    答案解析

  • (多选题)

    如图1所示,下图中流星划动的效果是由画笔,请问在使用画笔时可能会用到以下哪些选项?()

    答案解析

快考试在线搜题