H - Mysterious Photos


纯纯的一个相似三角形,有一个坑是,精度问题,用了sqrt就wa,

所以此类问题,能不sqrt尽量就不 sqrt



#include <cstdio>
#include <cmath>
#include <cstring>
#include <string>
#include <algorithm>
#include <iostream>
#include <queue> 
#include <set>
#include <vector>
using namespace std;

double tm[5][5];
double nm[5][5];

double len1[5];
double len2[5];

int main()
{ 
	
	cin>>tm[1][1]>>tm[1][2];
	cin>>tm[2][1]>>tm[2][2];
	cin>>tm[3][1]>>tm[3][2];
	
	cin>>nm[1][1]>>nm[1][2];
	cin>>nm[2][1]>>nm[2][2];
	cin>>nm[3][1]>>nm[3][2]; 
	 
   len1[1]=( pow((tm[1][1]-tm[2][1]),2)+pow((tm[1][2]-tm[2][2]),2) );  //此处长度本应有sqrt,但由于精度问题,才直接用平方计算
   len1[2]=( pow((tm[2][1]-tm[3][1]),2)+pow((tm[2][2]-tm[3][2]),2) );
   len1[3]=( pow((tm[1][1]-tm[3][1]),2)+pow((tm[1][2]-tm[3][2]),2) );
   len2[1]=( pow((nm[1][1]-nm[2][1]),2)+pow((nm[1][2]-nm[2][2]),2) );
   len2[2]=( pow((nm[2][1]-nm[3][1]),2)+pow((nm[2][2]-nm[3][2]),2) );
   len2[3]=( pow((nm[1][1]-nm[3][1]),2)+pow((nm[1][2]-nm[3][2]),2) );
 
	sort(len1+1,len1+3+1);
	sort(len2+1,len2+3+1);


	 if ((len1[1]*len2[2]==len1[2]*len2[1])&&
		 (len1[3]*len2[2]==len1[2]*len2[3]) )         
		printf("YES\n");
	 else

		 	printf("NO\n");
	
	
	return 0;
	
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值