POJ 1673

可以证明O是三角形ABC的垂心。

作图辅助线,一个很重要的技巧是延长中线等中线。

可以证明三角形DNA全等于ABC。然后通过角度变换容易证明AQ垂直于BC。

#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;

struct point{
	double x,y;
}A,B,C;

const int inf=10000000;

int main(){
	int t; double k1,k2,b1,b2,Ax,Ay;
	cin>>t;
	while(t--){
		cin>>A.x>>A.y;
		cin>>B.x>>B.y;
		cin>>C.x>>C.y;
		if(A.x==B.x){
			k1=0; Ay=C.y; b1=C.y;
		}
		else if(A.y==B.y){
			k1=inf;  Ax=C.x;
		}
		else{
			k1=(A.y-B.y)/(A.x-B.x);
			k1=-1/k1;
			b1=C.y-k1*C.x;
		}
		if(A.x==C.x){
			k2=0; Ay=B.y; b2=B.y;
		}
		else if(A.y==C.y){
			k2=inf;  Ax=B.x;
		}
		else{
			k2=(A.y-C.y)/(A.x-C.x);
			k2=-1/k2;
			b2=B.y-k2*B.x;
		}
		if(k1==inf){
			Ay=k2*Ax+b2;
		}
		else if(k2==inf){
			Ay=k1*Ax+b1;
		}
		else{
			Ax=(b2-b1)/(k1-k2);
			Ay=k2*Ax+b2;
		}
		printf("%.4lf %.4lf\n",Ax+1e-8,Ay+1e-8);
	}
	return 0;
}

  

POJ 1673

时间: 2024-11-03 21:58:40

POJ 1673的相关文章

POJ 1673 三角形垂心

EXOCENTER OF A TRIANGLE Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 3209   Accepted: 1259 Description Given a triangle ABC, the Extriangles of ABC are constructed as follows: On each side of ABC, construct a square (ABDE, BCHJ and AC

POJ 1673 EXOCENTER OF A TRIANGLE

这道题就是求点的时候麻烦了点,思路还是很简单的 刚开始把向量反向写成了swap(x,y),其实应该是x=-x,y=-y #include<stdio.h> #include<math.h> #include<algorithm> using namespace std; const double eps=1e-8; struct Point { double x,y; Point(){} Point(double xx,double yy){x=xx;y=yy;} Po

[转] POJ几何分类

转自:http://blog.csdn.net/tyger/article/details/4480029 计算几何题的特点与做题要领:1.大部分不会很难,少部分题目思路很巧妙2.做计算几何题目,模板很重要,模板必须高度可靠.3.要注意代码的组织,因为计算几何的题目很容易上两百行代码,里面大部分是模板.如果代码一片混乱,那么会严重影响做题正确率.4.注意精度控制.5.能用整数的地方尽量用整数,要想到扩大数据的方法(扩大一倍,或扩大sqrt2).因为整数不用考虑浮点误差,而且运算比浮点快. 一.点

【转】计算几何题目推荐

打算转下来好好做计算几何了. 原文地址:http://blog.sina.com.cn/s/blog_49c5866c0100f3om.html 其实也谈不上推荐,只是自己做过的题目而已,甚至有的题目尚未AC,让在挣扎中.之所以推荐计算几何题,是因为,本人感觉ACM各种算法中计算几何算是比较实际的算法,在很多领域有着重要的用途计算几何题的特点与做题要领:1.大部分不会很难,少部分题目思路很巧妙2.做计算几何题目,模板很重要,模板必须高度可靠.3.要注意代码的组织,因为计算几何的题目很容易上两百行

优质题表(机密版)

转载请注明出处:http://www.cnblogs.com/dashuzhilin/p/4556803.html 思维题: poj 1528 poj 1597 poj 2538 poj 2608 poj 2612 poj 2361 poj 2339 poj 2664 uva 10894 uva 10921   uva 10922   uva 10929 uva 10931   uva 10800   uva 10878 uva 10976   uva 10323   uva 201 poj 2

POJ 3449 Geometric Shapes --计算几何,线段相交

题意: 给一些多边形或线段,输出与每一个多边形或线段的有哪一些多边形或线段. 解法: 想法不难,直接暴力将所有的图形处理成线段,然后暴力枚举,相交就加入其vector就行了.主要是代码有点麻烦,一步一步来吧. 还有收集了一个线段旋转的函数. Vector Rotate(Point P,Vector A,double rad){ //以P为基准点把向量A旋转rad return Vector(P.x+A.x*cos(rad)-A.y*sin(rad),P.y+A.x*sin(rad)+A.y*co

ACM训练方案-POJ题目分类

ACM训练方案-POJ题目分类 博客分类: 算法 ACM online Judge 中国: 浙江大学(ZJU):http://acm.zju.edu.cn/ 北京大学(PKU):http://acm.pku.edu.cn/JudgeOnline/ 杭州电子科技大学(HDU):http://acm.hdu.edu.cn/ 中国科技大学(USTC):http://acm.ustc.edu.cn/ 北京航天航空大学(BUAA)http://acm.buaa.edu.cn/oj/index.php 南京

转载:poj题目分类(侵删)

转载:from: POJ:http://blog.csdn.net/qq_28236309/article/details/47818407 按照ac的代码长度分类(主要参考最短代码和自己写的代码) 短代码:0.01K–0.50K:中短代码:0.51K–1.00K:中等代码量:1.01K–2.00K:长代码:2.01K以上. 短:1147.1163.1922.2211.2215.2229.2232.2234.2242.2245.2262.2301.2309.2313.2334.2346.2348

poj题库分类

初期:一.基本算法:     (1)枚举. (poj1753,poj2965)     (2)贪心(poj1328,poj2109,poj2586)     (3)递归和分治法.     (4)递推.     (5)构造法.(poj3295)     (6)模拟法.(poj1068,poj2632,poj1573,poj2993,poj2996)二.图算法:     (1)图的深度优先遍历和广度优先遍历.     (2)最短路径算法(dijkstra,bellman-ford,floyd,hea