2014: 一生之敌
Time Limit: 1 Sec Memory Limit: 128 MB
Submit: 519 Solved: 59
[Submit][Status][Web Board]
Description

Input
第一行输入一个整数T,表示数据组数。
每组数据输入一个整数n。
1 <= T <= 100000
0 <= n <= 10^19
保证结果存在
Output
输出一个整数。
Sample Input
3
2
6
100
Sample Output
6
6
114
题解:
首先要把b进行求解,b = 4乘的平方加上2乘k
数组开到1400000就可以了太大要超出unsigned long long的范围
unsigned long long范围约为10的19 次方,输出yo
#include <iostream>
#include<cstdio>
#define inf 1400000
using namespace std;
unsigned long long ans[inf];
int main()
{
int num;
unsigned long long k;
unsigned long long n;
for( k = 0; k <= inf; k ++){
ans[k] = 4 * k * k * k + 2 * k;
}
scanf("%d", &num);
while(num --){
scanf("%llu", &n);
for( k = 0; k <= inf; k ++){
if(ans[k] >= n){
printf("%llu\n", ans[k]);
break;
}
}
}
return 0;
}
本文深入解析了一道名为“一生之敌”的算法题,通过使用C++实现,介绍了如何处理大规模数据集(高达10^19)。文章详细阐述了通过预计算数组来快速响应查询的方法,确保了在给定限制下(1≤T≤100000)的高效运行。
&spm=1001.2101.3001.5002&articleId=78778054&d=1&t=3&u=98d78be13ec442999601c9bf34097ac1)
6987

被折叠的 条评论
为什么被折叠?



