DFS神秘数列

该博客讨论了一种特殊数列,通过相邻两数相减直至只剩一个数。目标是使最后的数字达到给定的目标值。文章提供了一个输入示例,并说明了求解策略,即使用深度优先搜索(DFS)算法来找到可行方案的数量。
摘要由CSDN通过智能技术生成

题目描述

研究中心正在研究一种数列,该数列由整数组成,
每次可以对相邻的两个数进行相减操作,
并删去这两个数,将运算结果替换进去。直到此数列只剩一个数为止。
现在此研究中心欲使此最后剩下的数字为目标数,请你帮助他们完成这个任务。
若此数列为{12,10,4,3,5},目标数为4,E(n)表示对第n和第n+1数进行相减并替换。
E(2)={12,6,3,5} (6 = 10-4)
E(3)={12,6,-2} (-2 = 3-5)
E(2)={12,8} (8 = 6-(-2))
E(1)={4} (4 = 12-8)
则最后达到目的,数列仅剩一目标数,则此过程为:2,3,2,1

输入

第一行为N (3≤N≤10),为数列中数的个数 。
第二行为M,为目标数 。
以下N行每行一个整数,为此数列中的数。
输出

一个整数,为可行方案的数量。

输入

第一行为N (3≤N≤10),为数列中数的个数 。
第二行为M,为目标数 。
以下N行每行一个整数,为此数列中的数。
输出

一个整数,为可行方案的数量。

思路:用深搜解题。
把深度设为n,从1开始,每两个相邻的数相减并存到前一个数,然后把后面的数全部向前移一位,填充相减的第二个数,然后dep累减。当dep为1时就判断最后减出来的数是否为原来的目标数,如果是就累加,否则直接返回。

#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值