虽然没有解决,但是大致的思路还是有的,抛砖引玉,求AC代码。
import java.util.Scanner;
class Main
{
static int ans = 0,sum = 0,n,s,a,b;
public static void main(String[] arge)
{
Scanner cin = new Scanner(System.in);
n = cin.nextInt();
s = cin.nextInt();
a = cin.nextInt();
b = cin.nextInt();
for(int i = (s - a*n*(n-1)/2)/n;i<= (s + b*n*(n-1)/2)/n;i++ )
{
dfs(i,n-1);
}
ans %= 100000007;
sop1(ans);
}
public static void dfs(int i,int n)
{
sum += i;
if(n == 0)
{
if(sum == s)
ans++;
sum -= i;
return;
}
dfs(i + a,n-1);
dfs(i - b,n-1);
sum -= i;
}
public static void sop1(Object obj)
{
System.out.println(obj);
}
}
原文地址:http://blog.csdn.net/u013451048/article/details/44016209