Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 1222 Accepted Submission(s): 526Problem Description
Consider the problem of tiling an n×n chessboard by polyomino pieces that are k×1 in size; Every one of the k pieces of each polyomino tile must align exactly with one of the chessboard squares. Your task is to figure out
the maximum number of chessboard squares tiled.
Input
There are multiple test cases in the input file.
First line contain the number of cases T (T≤10000 ).
In the next T lines contain T cases , Each case has two integers n and k. (1≤n,k≤100 )
Output
First line contain the number of cases T (
In the next T lines contain T cases , Each case has two integers n and k. (
Print the maximum number of chessboard squares tiled.
Sample Input
2 6 3 5 3
36 24
问题链接:HDU5100 Chessboard
问题简述:(略)
问题分析:这是一个组合数学问题,计算原理参见参考链接。
程序说明:(略)
题记:(略)
参考链接:Matrix67: The Aha Moments
AC的C++语言程序如下:
/* HDU5100 Chessboard */ #include <iostream> using namespace std; int getnum(int n, int k) { if(n < k) return 0; int m = n % k; if(m <= k / 2) return n * n - m * m; else return n * n - (k - m) *(k - m); } int main() { std::ios::sync_with_stdio(false); int t, n, k; cin >> t; while(t--) { cin >> n >> k; cout << getnum(n, k) << endl; } return 0; }