您的位置:首页 > 其它

noip2011初赛-子矩阵

2015-08-23 17:25 190 查看
noip2011C-4-1(子矩阵)输入一个n1*m1的矩阵a,和n2*m2的矩阵b,问a中是否存在子矩阵和b相等。若存在,输出所有子矩阵左上角的坐标;若不存在输出“there is no answer”。



样例输入:

3 3

1 2 3

4 5 6

7 8 9

2 2

5 6

8 9



样例输出:

2 2

const
SIZE=50;

var
n1,m1,n2,m2,i,j,k1,k2:integer;
a,b:array[1..SIZE,1..SIZE] of integer;
good,haveAns:boolean;

begin
	assign(input,'noip2011C_4_1.txt');
	reset(input);
	readln(n1,m1);
	for i:=1 to n1 do
	begin
		for j:=1 to m1 do
		begin
			read(a[i][j]);
		end;
	end;	
	readln(n2,m2);
	for i:=1 to n2 do
	begin
		for j:=1 to m2 do
		begin
			read(b[i][j]);
		end;
	end;
	haveAns:=false;
	for i:=1 to n1-n2+1 do
	begin
		for j:=1 to m1-m2+1 do
		begin
			good:=true;
			for k1:=1 to n2 do
			begin
				for k2:=1 to m2 do
				begin
					if a[i+k1-1][j+k2-1]<>b[k1][k2] then good:=false;
				end;
			end;
			if good then
			begin
				writeln(i,' ',j);
				haveAns:=true;
			end;
		end;
	end;
	if not haveAns then writeln('There is no answer');
	close(input);
end.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: