UVA 11538 Chess Queen
2012-10-27 19:59
218 查看
UVA_11538
可以将两个皇后的位置分为横、竖、斜三种情况去计算,每种都可以总结出O(1)的计算公式。
可以将两个皇后的位置分为横、竖、斜三种情况去计算,每种都可以总结出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; }
相关文章推荐
- UVA 11538 Chess Queen
- uva 11538 - Chess Queen(组合数)
- UVa 11538 - Chess Queen
- UVa 11538 - Chess Queen (组合数学)
- UVA 11538 Chess Queen——计数原理
- UVa 11538 - Chess Queen
- UVa 11538 Chess Queen
- UVa 11538 - Chess Queen
- UVa - 11538 - Chess Queen
- UVa 11538 Chess Queen (排列组合计数)
- Chess Queen(uva 11538)
- Uva-11538-Chess Queen
- Uva 11538 - Chess Queen
- UVA 11538 Chess Queen
- UVA 11538 Chess Queen
- UVA 11538 Chess Queen
- UVA 11538 Chess Queen
- UVA 11538 Chess Queen
- Uva 11538 - Chess Queen