n=25,a=25,b=25时,
这是前25个格子装了<=25个球的方案数:126410606437752
这是其自乘的结果:15979641419960227387050813504
emm,ull显然不可能存的下,所以可用压位高精.
但题解区没人写了这个东东,显然数据中没有这个点.
注意下,ull开了后要思考是否会出现溢出的情况,其实它最大正值就是ll的两倍...
下附压位高精(其实不难写吧)
void cheng(ll a,ll b){
ll mod=1e9,
A[3]={a%mod,a/mod%mod,a/mod/mod%mod},
B[3]={b%mod,b/mod%mod,b/mod/mod%mod},
C[6]={0,0,0,0,0,0};
for(int i=0;i<6;i++)
for(int a_=0;a_<=min(i,2);a_++)
if(i-a_<=2)
C[i]+=A[a_]*B[i-a_];
for(int i=0;i<5;i++)
C[i+1]+=C[i]/mod,C[i]%=mod;
int R=5;while(!C[R]) R--;
printf("%lld",C[R]);
for(int i=R-1;~i;i--)
printf("%09lld",C[i]);
printf("\n");
}
建议添加一组数据:
input:
25 25 25
output:
15979641419960227387050813504