您的位置:首页 > 产品设计 > UI/UE

UVA 11538 Chess Queen

2012-10-27 19:59 218 查看
UVA_11538

可以将两个皇后的位置分为横、竖、斜三种情况去计算,每种都可以总结出O(1)的计算公式。

#include<stdio.h>
#include<string.h>
#include<algorithm>
typedef long long LL;
int N, M;
LL sum(int n)
{
return (LL) n * (n + 1) / 2;
}
LL sum2(int n)
{
return (LL)n * (n + 1) * (2 * n + 1) / 6;
}
int main()
{
while(scanf("%d%d", &N, &M), N && M)
{
LL ans = (LL)N * M * (N + M - 2);
int n = std::min(N, M);
ans += 2 * (sum2(n) + sum2(n - 1) - sum(n) - sum(n - 1));
ans += std::abs(N - M) * (LL)n * (n - 1) * 2;
printf("%lld\n", ans);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: