各位有什么好的思路吗?逆向思维好考虑
逆向思维好考虑,就是用总的情况数,减去不可能出现坏账的情况。但是用的BigInteger超时了
import java.math.BigInteger;
import java.util.Scanner;
public class laoxu {
public static void main(String args[]) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
BigInteger w = in.nextBigInteger();
BigInteger temp = pow2(w,n);
BigInteger x = BigInteger.valueOf(1);
BigInteger n_temp = BigInteger.valueOf(n);
BigInteger w_cha = w.subtract(x);
BigInteger y = pow2(w_cha,n-1).multiply(n_temp);
BigInteger res = temp.subtract(y);
BigInteger tt = BigInteger.valueOf(100003);
System.out.println(res.remainder(tt));
}
public static BigInteger pow2(BigInteger x, int n) {
if (n == 0)
return BigInteger.valueOf(1);
else {
if (n % 2 == 0)
return pow2(x.multiply(x), n / 2);
else
return pow2(x.multiply(x), (n - 1) / 2).multiply(x);
}
}
}
