问题是a1 x1 + a2 x2 + ......的解的数量+带有约束的xn = k:1)ai> 0且ai&lt; = 15 2)n> 0且n <= 15 3)xi&gt; ; = 0我能够制定动态编程解决方案但是对于n> 10 ^ 10它运行的时间太长。请指导我获得更有效的信息。 代码
int dp[]=new int[16];
dp[0]=1;
BigInteger seen=new BigInteger("0");
while(true)
{
for(int i=0;i<arr[0];i++)
{
if(dp[0]==0)
break;
dp[arr[i+1]]=(dp[arr[i+1]]+dp[0])%1000000007;
}
for(int i=1;i<15;i++)
dp[i-1]=dp[i];
seen=seen.add(new BigInteger("1"));
if(seen.compareTo(n)==0)
break;
}
System.out.println(dp[0]);
arr是包含系数的数组,答案应该是mod 1000000007,作为不适合int的方式的数量。