Hdu 5100 Chessboard

题目链接:

  Hdu 5100 Chessboard

题目描述:

  给一个n*n的格子,有1*k的瓷砖,问用这些瓷砖覆盖这些格子,最少剩下多少格子不能被覆盖(格子只能被覆盖一次,瓷砖不能超出格子界限)?

解题思路:

  看到题目感性告诉窝和n%k有关系,提交,返回wa,然后又讨论n与k的奇偶性,依旧wa。最后发现是一个结论题,Matrix67的文章写的很棒,paste~。

  中文证明链接

  英文证明链接

 1 #include <cmath>
 2 #include <cstdio>
 3 #include <cstring>
 4 #include <iostream>
 5 #include <algorithm>
 6 using namespace std;
 7 
 8 int main ()
 9 {
10     int n, k, t;
11     scanf ("%d", &t);
12     while ( t --)
13     {
14         scanf ("%d %d", &n, &k);
15         if (n < k)
16             printf ("0\n");
17         else
18             {
19                 int a = n % k;
20                 int b = k - n%k;
21                 printf ("%d\n", n*n - min (a*a, b*b));
22             }
23     }
24     return 0;
25 }

 

posted @ 2015-11-04 15:05  罗茜  阅读(170)  评论(0编辑  收藏  举报