怎么辉逝呢
查看原帖
怎么辉逝呢
222901
隔壁泞2的如心楼主2022/12/24 17:38

这是一段获得了100分的代码,好像并没有什么问题。

s2 svphi(signed now){
	if(now<=N32)return {phi[now],mu[now]};
	if(hsh1[R(now)])return {hsh1[R(now)],hsh2[R(now)]};
	int ret1=now*(now+1)/2,ret2=1;
	for(signed l=2,r;l<=now;l=r+1){
		r=(now/(now/l));
		s2 sn=svphi(now/l);
		ret1-=(r-l+1)*sn.a;
		ret2-=(r-l+1)*sn.b;
	}
	return {hsh1[R(now)]=ret1,hsh2[R(now)]=ret2};
}

但下面这个驴唇不对马嘴的代码能获得99分,只是最后一个点有一点慢。

s2 svphi(signed now){
	if(now<=N32)return {phi[now],mu[now]};
	if(hsh1[R(now)])return {hsh1[R(now)],hsh2[R(now)]};
	int ret1=now*(now+1)/2,ret2=1;
	for(signed l=2,r;l<=n;l=r+1){
		r=(n/(n/l));
		s2 sn=svphi(now/l);
		ret1-=(r-l+1)*sn.a;
		ret2-=(r-l+1)*sn.b;
	}
	return {hsh1[R(now)]=ret1,hsh2[R(now)]=ret2};
}

我陷入了沉思,这是啥情况?now和n写乱到底为什么问题如此之小?

这告诉我们,哪怕你就剩一个点,你也可能是写挂了(

2022/12/24 17:38
加载中...