【2012.03.3普及组】寻找星座

来源:互联网 发布:艾克里里淘宝店链接 编辑:程序博客网 时间:2024/04/25 11:41

题目描述

 现在你在一张卫星图片中寻找星座,已知该星座在图片中正好出现一次,而且形状一样,方向一样,大小也一样。注意图片中可能有一些与该星座无关的星星。

例如图1中的星座出现在图2的卫星图片中(用圆圈标识部分)。图1中给定的星座需要在X轴上平移2个单位同时在y轴上平移-3个单位才能与卫星图片中的卫星正好吻合。

写一个程序,计算给定卫星需要在X和Y方向上分别平移多少单位才能与卫星图片吻合。

题解

  纯暴力,枚举每一个点的横纵坐标,那个点全部符合就输出。

代码

var  n,m,s:longint;  x,y:array[0..1000] of longint;  a,b:array[0..1000,1..2] of longint;procedure init;var  i:longint;begin  readln(n);  for i:=1 to n do readln(a[i,1],a[i,2]);  readln(m);  for i:=1 to m do    begin      readln(b[i,1],b[i,2]);      x[i]:=b[i,1]-a[1,1];      y[i]:=b[i,2]-a[1,2];    end;end;procedure main;var  i,j,l:longint;begin  for i:=1 to m do    begin      s:=0;      for j:=1 to n do        for l:=1 to m do          if (b[l,1]=a[j,1]+x[i])and(b[l,2]=a[j,2]+y[i]) then            begin              inc(s);              break;            end;      if s=n then        begin          writeln(x[i],' ',y[i]);          exit;        end;    end;end;begin  init;  main;end.


3 0
原创粉丝点击