1248: 方砖问题
描述
题目描述:
用边长小于N的正方形方砖(注意,不要求所有的方砖大小相同,请看样例说明)不重叠地铺满N*N的正方形房间,最少要几块方砖。
输入:
第一行是一个整数T,表示测试数据的组数,接下来的T 行,每一行是一个N(2<=N<=100)
输出:
对于每一组测试数据输出一行,为最少需要的块数。
样例输入
2 4 5
样例输出
4 8
提示
当N=4时
最优的铺砖方法
AABB
AABB
CCDD
CCDD
A,B,C,D为四块方砖的代号。
其他的铺砖方法,例如:
AAAB
AAAC
AAAD
EFGH
需要的8块方砖,不是最少的。
这道题和之前发的吃薯条问题有异曲同工之处,唯一的区别就是吃薯条问题考的是2^n的形式下与薯条根数最接近的情况,即每次都不断地除以二总共用的次数,而这题的最终数学规律是只需要除一次,再算pow即可。当时做的时候根本就静不下心来看题,都没有过脑子,还以为方砖还可以是浮点数,就觉得很麻烦,根本就没有尝试,有一种畏难情绪,再加上没有看到提示。后来才明白做题时大部分时间真的不是花在打代码然后再出错试错,而是应该动一下笔,认真地分析清楚题意,得出最根本的数学公式,或者建立好可行的模型,而不是上来就做,这样非常盲目。
#include<stdio.h>
#include<math.h>
int main()
{
int i,n,a,b,r;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a);
b=(int) (a/2.0+0.5);
r=pow(2,b);
printf("%d\n",r);
}
}
| 521219 | 1248 | 16561 | 正确 | 100% | C |

本博客探讨了1248号问题——方砖问题,如何使用边长小于N的正方形方砖不重叠地铺满N*N的正方形房间。问题关键在于寻找最少的方砖数量。当N=4时,通过示例展示了最优的铺砖方法。题目与吃薯条问题类似,但重点在于找出只需除一次并计算pow的数学规律。博客强调了解题时深入理解题意、分析数学模型的重要性,而非直接编程试错。
521

被折叠的 条评论
为什么被折叠?



