社区讨论

RE 求调QwQ

P3764签到题 III参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@mhjq9rij
此快照首次捕获于
2025/11/04 06:44
4 个月前
此快照最后确认于
2025/11/04 06:44
4 个月前
查看原帖
CPP
#include<iostream>
#include<cmath>
using namespace std;
long long n,x,y,z,ans=0;;
int main(){
	scanf("%lld",&n);
	if(n<=2){printf("0");return 0;}
	x=floor(log2(n))/2;
	y=n/((1<<(x+1))+1);
	z=(1<<x)-1;
	for(int i=1;i<=x;i++){
		for(int ii=1<<(i-1);ii<(1<<(i-1))*2;ii++){
			ans+=n/((ii*2)|1)*i;
		}
	}x++;
	while(y>0){
		if(n/((1<<(x+1))-1)==y){
			ans+=x*y*((1<<x)-1-z);
			z=(1<<x)-1;x++;
		}else{
			ans+=x*y*(((n/y-1)/2)-z);
			z=(n/y-1)/2;y--;
		}
	}printf("%lld",ans<<1);
	return/*结束*/0;
}
当输入为466666666666时RE惹……

回复

0 条回复,欢迎继续交流。

正在加载回复...