30求助呜呜呜
  • 板块P1762 偶数
  • 楼主LMZYYP
  • 当前回复1
  • 已保存回复1
  • 发布时间2021/10/5 16:07
  • 上次更新2023/11/4 04:44:10
查看原帖
30求助呜呜呜
343319
LMZYYP楼主2021/10/5 16:07

为啥只有30??

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1000003;
ll n;
ll fpow(ll a,ll b){
	ll ans=1;
	for(;b;b>>=1){
		if(b&1){
			ans=ans*a%N;
		}
		a=a*a%N;
	}
	return ans;
}
ll lowbit(ll x){
	return x&(-x);
}
ll f(ll x){
	if(lowbit(x)==x){
		return fpow(3,log(x)/log(2))%N;
	}
	return f(fpow(2,log2(x)))%N+2*f(x-fpow(2,log2(x))%N);
}
int main(){
	scanf("%lld",&n);
	printf("%lld",((1+n)*n/2-f(n)%N)%N);
}
2021/10/5 16:07
加载中...