蓝桥杯_拼数字dp

给定n(<=100) 个数字 ([0, 1e5]之间)
问通过(加减操作),可以组成多少个数字?
 
比如对于[1, 4, 6]
1 = 1
2 = 6 - 4
3 = 4 - 1
4 = 4
5 = 1 + 4
....

' 首先,遇到这类题 凑数, 第一直觉 往往是“预处理” '
因为答案一定形如: a - b + c - d + e ... 的形式
即有(a + c + e + ..- (b + d + ...)
   即,若干个数字的和 - 若干个数字的和

方法1: (这也是比赛写的算法.... -,-)
	bac[2^n] = {
   所有2^n的选的情况(即若干数字的和)}
for( front : 2^n )
	for( back : 2^n ){
   
		vis[front - back] = true;
	}
   I:   时间肯定是超时的
   II:  你会有超级多的 '不必要'
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值