题解全错了/doge
查看原帖
题解全错了/doge
104918
Fish_Clever楼主2022/9/18 10:47
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
2022/9/18 10:47
加载中...