算m点问题(dfs+排列树)

题目描述:给定k个正整数,用算术运算符+,-,*,/将这k个正整数链接起来,使最终的得数恰为m。
如果有多组满足要求的表达式,只要输出一组,每一步算式用分号隔开。如果无法得到m,则输出"No Solution"


样例输入:

5 125

7 2 2 12 3

样例输出:

7 * 3 = 21; 21 * 12 = 252 ; 252 - 2 = 250; 250 / 2 = 125


排列树

tips:关键是如何在搜索的过程中,逐步输出表达式。
这里的思路是:
如果最后得到了m的值,则返回true,否则返回false.并且回溯过程中(输出表达式的信息)每一步同样都返回true.
否则一律返回false.


代码如下:


#include<string>
#include<iostream>
#include<cstring>
#include<vector>
#in
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值