90分,帮孩子调调吧
查看原帖
90分,帮孩子调调吧
1231745
djh456789123楼主2024/12/17 23:32

#include<bits/stdc++.h>
using namespace std;
const int mod = 998244353;
void print__int128(__int128 &a){
	int j=19;
	char c[20];
	while(a){
		c[j--] = char(a%10);
		a/=10;
	}
	j++;
	while(j<=19){
		cout<<char(c[j++]+'0');
	}
	return ;
}
void sol(){
	int n;
	cin>>n;
	__int128 sum = n;
	__int128 i=1,j=1;
	__int128 end = __lg(n);
	for(;j<=end;i*=2,j++){
		sum = (sum%mod + (j%mod)*(i%mod)%mod)%mod;
	}
	sum = (sum%mod + (j%mod)*((n-i)%mod)%mod)%mod;
	print__int128(sum);
	cout<<'\n';
	return ;
}
signed main(){
	ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
	int _=1;
//	cin>>_;
	while(_--) sol();
	return 0;
}
2024/12/17 23:32
加载中...