80分求调
查看原帖
80分求调
1220111
xiaoyang222楼主2024/4/23 07:52
#include <iostream>
#include <vector>
#define int long long
using namespace std;
const int N=1e12+5;
vector<int> a;//完全立方数 
void init(){
	for (int i=1;i*i*i<=N;++i){//预处理完全立方数 
		a.emplace_back(i*i*i);
	}
    a.emplace_back();
}
int sm=0,i;//前面整块的总和和到哪一个整块了 
void solve(){
	int x;
	scanf("%lld",&x);
	for (;i<a.size()-1 && a[i+1]<=x;++i){
		sm+=(i+1)*(a[i+1]-a[i]);
	}
	printf("%lld\n",sm+(i+1)*(x-a[i]+1));
}
signed main(){
    init();
	int q;
	cin >> q;
	for (int i=0;i<q;++i){
		solve();
	}
	return 0;
}

提交记录

2024/4/23 07:52
加载中...