给定 n 个数 ai,以及一个数 m,其中 n≤1000,ai≤109,m≤1018。
初始有一个数为 0,你可以对于第 i 个数,加上这个数的倍数(可以为 0),求最终这个数 <m 的情况下可以得到的值的数量。
例如,n=2,m=10,a=[2,3]:
-
0=2×0+3×0。
-
2=2×1+3×0。
-
3=2×0+3×1。
-
4=2×2+3×0。
-
5=2×1+3×1。
-
6=2×0+3×2。
-
7=2×2+3×1。
-
8=2×4+3×0。
-
9=2×0+3×3。
如上,可以得到 10 种不同的值。
求助啊,听说是一个板子,但是个人感觉除了完全背包感觉没法做了,值域又那么大。