从1-9中选择在下面填入合适的数字字下面口里多少数字相加等于92。

拍照搜题秒出答案,一键查看所有搜题记录

拍照搜题秒出答案,一键查看所有搜题记录

是井字格哦(有九个格子)

拍照搜题秒出答案,一键查看所有搜题记录



前面那个代码有点错误会丢包,现在改出来了通过了例子
考虑到你的找的数字只有21个,因为怕数组溢出我包的容量尽可能缩小了你想改大的话可以把包的select量拿出来,我就贪方便了直接写结构体里面了
思想就是01背包这种选物品的问题都是可以转成背包问题解决的,千万不要用枚举即使是把尾数拆開来算总和的枚举也是一定会溢出的,数据量太大了而且时间会很慢(指数时间复杂度)
我这个代码时间复杂度是0(C*P*N),(C是选择的元素P是總和,N是元素个数)空间复杂度是O(C*C*P)
在我的机子跑了79S吧,其实很慢了因为我的包的总量是按照P来划分的,但是P很大如果你想快的话可以這样,因为你的数据都是比较大的可以考虑划分为一个一个segement,比如1W-2W是一个区域这样把包的容量减少,这样跑起来就快了
如果你的给定數字少的话(比如只有40个)那就直接用超大背包的做法,把数字拆分枚举再用完全背包,然后合并

我要回帖

更多关于 合适的数字 的文章

 

随机推荐