/* *Copyright (c)2014,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:HDU.cpp *作 者:单昕昕 *完成日期:2015年1月27日 *版 本 号:v1.0 *问题描述: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. *程序输入:There are multiple test cases in the input file. First line contain the number of cases T ($T \leq 10000$). In the next T lines contain T cases , Each case has two integers n and k. ($1 \leq n, k \leq 100$) *程序输出:Print the maximum number of chessboard squares tiled. Sample Input 2 6 3 5 3 Sample Output 36 24 */ #include<iostream> #include<cstdio> using namespace std; int main() { int t; cin>>t; while(t--) { int n,k; cin>>n>>k; if(n<k) { printf("0\n"); continue; } int r=n%k; if(r<=k/2) cout<<n*n-r*r<<endl; else cout<<n*n-(k-r)*(k-r)<<endl; } return 0; }
学习心得:
找规律。。不要挣扎