一道简单的FREE PASCAL 题目 希望大牛来解答

A城是矩形平原,B君在上面修建一些建筑,为了规划方便,他将矩形划分成N*M格。有部分神庙分布在格子内,建筑选址时必须避开神庙。新建的建筑物有P种规格,每种建筑物都是正方形... A城是矩形平原,B君在上面修建一些建筑,为了规划方便,他将矩形划分成N*M格。
有部分神庙分布在格子内,建筑选址时必须避开神庙。新建的建筑物有P种规格,每种建筑物都是正方形,占地为Ti*Ti(1<=i<=p)。
b君想知道对于每种规格的建筑物,有多少种不同的合格选址方案(合适的选址方案是指该建筑所占的正方形内不存在神庙)。这个光荣的任务交给你来完成了
输入格式: 第一行包括三个数,分别代表 N,M,P(1<=n,m<=2000,1<=p<=1000)。
随后的n行,每行有m个0或1(1表示该格为废墟,0表示该格有神庙)。
接下来的P行每行有一个整数X(1〈X〈=max(M,N),
代表的第i种建筑物的边长
输出文件有P行,每行一个整数,第i行的数代表边长为Ti的建筑物的选址方案数。
样例输入
4 4 2
1011
1111
1110
1110
2
3
样例输出
5
1
要有 具体的步骤和过程 谢谢大家拉 如果对了就奖励50分
展开
 我来答
s_wordfeng
2008-10-19 · TA获得超过590个赞
知道小有建树答主
回答量:737
采纳率:0%
帮助的人:498万
展开全部
简单?
program building;
var n,m,p,i,j,c,k:longint;s:array [1..maxsize] of integer;a:array [1..maxsize] of array [1..maxsize] of integer;
begin
assign(input,'building.in');
assign(output,'building.out');
reset(input);
rewrite(output);
readln(n,m,p);
for i=1 to n
begin
for j=1 to m do read(a[m][n]);
readln;
end;
for i=1 to p do readln(s[p]);
for i=1 to p
begin
for j=1 to m-s[p]+1
begin
for k=1 to n-s[p]+1
唉,懒得写了!
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式