- 6
- 0
- 约1.4千字
- 约 3页
- 2017-12-20 发布于河北
- 举报
宁波市第25届中小学生程序设计竞赛复赛答案
2. 方格稿纸 (paint)
var
a:array[1..300,1..300] of longint;s,sum,i,j,p,q,n,m,k:longint;
begin
assign(input,C:\a\paint.in);reset(input);
readln(n,m);sum:=0;
for i:=1to n do
begin
for j:=1to m do read(a[i,j]);
readln;
end;
for k:=2 to n do
for i:=1 to n-k+1 do
for j:=1 to m-k+1 do
begin
s:=0;
for p:=i to i+k-1 do
for q:=j to j+k-1 do
s:=s+a[p,q];
if k mod 2=0 then
if s=(k*k) div 2 then
sum:=sum+1;
if k mod 20 then
if (s=(k*k) div 2) or (s=(k*k) div 2+1) then
sum:=sum+1;
end;
writeln(sum);
close(input);
end.
4. 瓶子涂色 (bottle)var
p:array[0..100000] of longint;a:array[1..3,1..100000] of longint;
i,j,x,min,n:longint;
procedure js(step,x:longint);
var
j:longint;
begin
if stepn then
begin
if xmin then min:=x;
exit;
end;
for j:=1 to 3 do
if p[step-1]j then
begin
p[step]:=j;
x:=x+a[j,step];
js(step+1,x);
x:=x-a[j,step];
p[step]:=0;
end;
end;
begin
assign(input,C:\a\bo.in);reset(input);
x:=0;min:readln(n);
for i:=1 to n do p[i]:=0;
for i:=1 to 3 do
begin
for j:=1 to n do read(a[i,j]);
readln;
end;
js(1,0);
writeln(min);
close(input);
end.
原创力文档

文档评论(0)