您的位置:首页 > 理论基础 > 计算机网络

HDU_5053_2014年鞍山网络赛

2015-04-30 18:16 330 查看
我当时怎么不知道有这么水的题。。。

题意:给一个范围[a,b],求区间内整数的立方和。弱弱的再吐槽一下:当时怎么没发现


#include <iostream>
#include <cstdio>
#include <cstring>

using namespace std;

#define ll __int64

int main()
{
ll a, b;
int t;
scanf("%d", &t);
int ans = 1;
while(t--)
{
ll sum = 0, i;
scanf("%I64d%I64d", &a, &b);
for(i=a; i<=b; ++i)
sum += i*i*i;

printf("Case #%d: %I64d\n", ans++, sum);
}

return 0;
}


可能是数据太水,用数学公式计算和上面的效率是一样的:

#include <iostream>
#include <cstdio>
#include <cstring>

using namespace std;

#define ll __int64

ll get3(ll n)
{
ll x = n*(n+1)/2;
return x * x;
}

int main()
{
ll a, b;
int t;
scanf("%d", &t);
int ans = 1;
while(t--)
{
ll sum = 0, i;
scanf("%I64d%I64d", &a, &b);

if(!a) a = 1;
printf("Case #%d: %I64d\n", ans++, get3(b)-get3(a-1));
}

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息