第二题我用排列组合写了下
package tencent;
import java.util.Scanner;
public class Dpstrk{
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
int k = scan.nextInt();
int a = scan.nextInt();
int x = scan.nextInt();
int b = scan.nextInt();
int y = scan.nextInt();
System.out.print(getInt(k, a, x, b, y));
scan.close();
}
public static int getInt(int k,int a,int x,int b,int y){
int d=0;
int count = 0;
if(a*x<k)
d = x;
else
d = k/a;// 歌曲A的个数
for(int i =0;i<=d;i++){
int cb = (k-i*a)/b;
if(cb>y||(k-i*a)%b !=0)//注意y的选择和整除
continue;
count += (getjs(x)/(getjs(i)*getjs(x-i))* getjs(y)/(getjs(cb)*getjs(y-cb)))%1000000007;
}
return count;
}
public static int getjs(int n){
if(n==0)
return 1;
int cj = 1;
for(int i=1;i<=n;i++){
cj *= i;
}
return cj;
}
}