2008noip普及组复赛解题报告

来源:百度知道 编辑:UC知道 时间:2024/06/05 03:12:49
第四题(pascal)

四、立体图

Pku原题,编号2330

算不上难题,但是比较麻烦,细心点就ok了。

先计算好画布的大小,再写一个根据左下角坐标绘制一个单位立方体的子程序。

然后遵循下面法则,不停绘制若干个立方体。(此处能体现出分割程序的伟大)

因为要不停的覆盖,所以要遵循“视觉法则”:

1. 先绘里层再绘外层

2. 先绘底层再绘上层

3. 先回左边再绘右边

参考程序:

program drawing;

const

inp='drawing.in';

oup='drawing.out';

var

m,n,i,j,k,x,y,h,tmp,maxx,maxy:longint;

map:array[1..1000,1..1000] of char;//画布

a:array[1..50,1..50] of integer;//记录输入的矩阵

procedure flink;

begin

assign(input,inp);

reset(input);

assign(output,oup);

rewrite(output);

end;

procedure fclose;

begin

close(input);

close(output);

end;

procedure print;//输出画布

var

i,j:longint;