UVA - 696 How Many Knights
2015-03-20 19:57
471 查看
题目大意:给出一个n * m的网格,计算最多可以放置几个国际象棋中的骑士。
解题思路:分成三类来讨论:
1)min(n, m) == 1, 也就是无论怎么摆也不会影响到其他的骑士。
2)min(n, m) == 2, 这是将网格将网格分成2*4的若干部分,每个部分的前半部分放置骑士,主要注意模4后剩余部分的处理。
3)n * m的网格上间隔摆放(就是对应的黑格子或者白格子)(n * m - 1)/ 2
解题思路:分成三类来讨论:
1)min(n, m) == 1, 也就是无论怎么摆也不会影响到其他的骑士。
2)min(n, m) == 2, 这是将网格将网格分成2*4的若干部分,每个部分的前半部分放置骑士,主要注意模4后剩余部分的处理。
3)n * m的网格上间隔摆放(就是对应的黑格子或者白格子)(n * m - 1)/ 2
#include <cstdio> int main() { int m, n, ans; while (scanf("%d%d", &m, &n), m + n) { if (m == 1 || n == 1) ans = m * n; else if (m == 2 || n == 2) ans = (m + n - 2) / 4 * 4 + ((m + n - 2) % 4 > 1 ? 4 : (m + n - 2) % 4 * 2); else ans = (m * n + 1) / 2; printf("%d knights may be placed on a %d row %d column board.\n", ans, m, n); } return 0; }
相关文章推荐
- UVa 696 - How Many Knights
- uva 696 - How Many Knights
- uva 696 - How Many Knights
- UVA 696 - How Many Knights (规律)
- UVA 696 How Many Knights
- uva 696 - How Many Knights
- UVA 696 How Many Knights
- UVa 696 How Many Knights (想法题)
- UVA696 - How Many Knights(数论)
- uva 10213 How Many Pieces of Land (欧拉公式计算多面体)
- UVa:11038 How Many O's?
- UVa 10213 How Many Pieces of Land
- UVA 10061 How many zero's and how many digits ?
- (计算几何8.1.3.1)UVA 10213 How Many Pieces of Land?(使用欧拉公式的应用顶点数+面数-棱数 = 2)
- UVa:10303 How Many Trees ?
- uva 10518 How Many Calls?
- uva - 10790 - How Many Points of Intersection?
- UVa 10183 - How Many Fibs?
- UVA - 10061 How many zero's and how many digits ?
- UVA - 10790 How Many Points of Intersection?