dp[i][j] += dp[i-1][j-g];背包吧
数据太大了 还是JAVA好用
import java.io.*;
import java.math.*;
import java.text.*;
import java.util.*;
public class Big {
public static void main(String[] args)
{
Scanner cin = new Scanner (System.in);
BigInteger[][] dp;
dp = new BigInteger[][];
int i,j,g,s,n;
n = cin.nextInt();
s = cin.nextInt();
for(i = ; i <= n ; i++)
for(j = ;j <= s ; j++)
dp[i][j] = BigInteger.valueOf();
if(s%!=||s/n/>)
{
System.out.println();
}
else
{
s/=;
for(i = ; i <= ; i++)
dp[][i] = BigInteger.valueOf();
for(i = ; i <= n ; i++)
{
for(j = ; j <= s ; j++)
{
for(g = ; g <= ; g++)
{
if(g>j) break;
dp[i][j] = dp[i][j].add(dp[i-][j-g]);
}
}
}
BigInteger ans;
ans = dp[n][s].multiply(dp[n][s]);
System.out.println(ans);
}
} }