`
scott________
  • 浏览: 21763 次
  • 性别: Icon_minigender_1
  • 来自: 哈尔滨
最近访客 更多访客>>
社区版块
存档分类
最新评论

poj pku 1673 EXOCENTER OF A TRIANGLE 三角形 垂心

阅读更多
题目描述:http://poj.org/problem?id=1673[size=large][/size]
该题重点是求证点O 为△ABC的垂心
延长BO 交AC 与R, 先证OR⊥AC(其它AO⊥BC, CO⊥AB 同理)

见下图:



1) 绕点B 旋转△EBJ, 使BE 与 BA 重合,得△ABP, 则△EBJ≌△ABP
2) 因为∠ABC 与 ∠EBJ 互余,所以旋转后点P、B、C 共线,且点B 为PC 中点
3) 记AP 中点为Q,则BQ 为中位线,所以∠1 = ∠4
4) 又∠4 为∠3旋转得到,显然∠4 = ∠3,则∠1 = ∠3
5) 显然∠2 与∠3 互余(∠CBJ 为90°), 又∠1 = ∠3,所以∠2 与∠1 互余
所以OR⊥AC
证毕

#include <cstdio>
#include <cmath>
#define eps 1e-8

struct point {
	double x, y;
};
struct line {
	point a, b;
};
//返回二阶行列式的值
double xmult(double a1, double a2, double b1, double b2) {
	return a1 * b2 - a2 * b1;
}

//返回线段的交点, 先确保两直线不共线(平行、重合)
//先把直线表示成ax + by + c = 0 的形式
point intersection(line u, line v) {
	double a1, b1, c1, a2, b2, c2;

	a1 = u.b.y - u.a.y;
	b1 = u.a.x - u.b.x;
	c1 = u.b.x * u.a.y - u.a.x * u.b.y;
	a2 = v.b.y - v.a.y;
	b2 = v.a.x - v.b.x;
	c2 = v.b.x * v.a.y - v.a.x * v.b.y;

	//注意精度控制, 好像g++ 和  vc 的表现不同。c++(vc)能AC, g++ 就不行了
	//不知道为什么, 请高人指点
	point ret;
	ret.x = xmult(b1, b2, c1, c2) / xmult(a1, a2, b1, b2) + eps;
	ret.y = -1.0 * xmult(a1, a2, c1, c2) / xmult(a1, a2, b1, b2) + eps;
	return ret;
}

//返回两点间的距离
double distance(point p1, point p2) {
	return sqrt((p1.x - p2.x) * (p1.x - p2.x) +
		        (p1.y - p2.y) * (p1.y - p2.y));
}

//返回a, b, c 三点组成的三角形的垂心
//前提: a, b, c 三点不共线
point perpencenter(point a, point b, point c) {
	line u, v;

	u.a = c;
	u.b.x = u.a.x - a.y + b.y;
	u.b.y = u.a.y + a.x - b.x;
	v.a = b;
	v.b.x = v.a.x - a.y + c.y;
	v.b.y = v.a.y + a.x - c.x;
	return intersection(u, v);

}

int main() {
	int ncase;
	point a, b, c, ans;
	scanf("%d", &ncase);
	while (ncase--) {
		scanf("%lf %lf %lf %lf %lf %lf", &a.x, &a.y, &b.x, &b.y, &c.x, &c.y);
		ans = perpencenter(a, b, c);
		printf("%.4lf %.4lf\n", ans.x, ans.y);
	}
	return 0;
}
  • 大小: 55.3 KB
分享到:
评论

相关推荐

    ACM Poj Pku 解题报告答案 打包 下载 600多题 史上最全

    ACM Poj Pku 解题报告答案 打包 下载 600多题 史上最全 不是网上乱传的200多题,更不是100多题就挂着10分才能下的题 下了这个 大家也不要浪费分数去下载其它版本的了,基本上都有 共享 一起进步 中国加油 ACMer...

    ACM POJ PKU 最全题目分类

    ### ACM POJ PKU 最全题目分类解析 #### 动态规划(DP) 在计算机科学领域,动态规划(Dynamic Programming, DP)是一种重要的算法思想,主要用于解决多阶段决策过程中的优化问题。它通过将原问题分解成相互重叠的...

    poj pku图论、网络流入门题总结、汇总

    根据提供的标题“poj pku图论、网络流入门题总结、汇总”及描述“很经典的图论,网络流入门的题目,值得一看啊~~其中有简单的解析”,本篇将对这些经典图论与网络流问题进行详细的分析和总结。通过梳理各题目及其...

    poj pku 解题报告

    1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1011 1012 1013 1014 1015 1017 1018 1019 1028 1032 1035 1040 1042 1045 1046 1047 1050 1056 1061 1062 1063 1065 1067 1068 1080 1083 1088 1089 1091 1094 ...

    POJ PKU 必做题+部分难题1001-2500

    1011,1012,1013,1014,1015,1017,1026,1028,1032,1035,1041,1046,1129 1149 1154 1165 1182 1185 1190 1191 1201 1251 1273 1275 1276 1286 1322 1338 1363 1364 1401 1456 1459 1564 1579 1637 1657 1658 ...

    poj(PKU-2314-POJ language

    根据提供的文件信息,我们可以分析出该段代码是用于解决POJ平台上的2314题的一种解决方案,主要涉及到了变量管理、表达式处理等方面。下面将详细解释代码中的关键概念和实现逻辑。 ### 关键概念解析 #### Variable...

    北大POJ1163-The Triangle

    北大POJ1163-The Triangle

    POJ1163-The Triangle

    【标题】"POJ1163 - The Triangle" 是北京大学在线编程平台POJ上的一道算法题目。这道题目通常被归类为计算机科学与信息技术领域的算法问题,特别是涉及数据结构和动态规划的子领域。 【描述】该题目的解题报告详细...

    poj 130题 acm pku

    【标题】"poj 130题 acm pku" 涉及的是ACM(国际大学生程序设计竞赛)中的PKU(北京大学)在线判题系统POJ(Problem Online Judge)的相关题目。ACM/ICPC(International Collegiate Programming Contest)是全球...

    POJ2109-Power of Cryptography

    《POJ2109-Power of Cryptography:解题报告与AC代码解析》 在计算机科学领域,算法和编程竞赛是检验和提升编程技能的重要途径。POJ(Problem Set of Peking University)是由北京大学主办的一个在线编程竞赛平台,...

    pku1088.rar_pku 10_pku 1088_poj 1088

    标题中的“pku1088.rar_pku 10_pku 1088_poj 1088”指的是北京大学(Peking University, PKU)编程竞赛中的第1088题,也称为POJ(Peking University Online Judge)的1088题。这个题目在编程竞赛社区中通常有一个特定的...

    poj经典动态规划题目解题报告

    poj经典动态规划题目解题报告,包括经典的动态规划题目20多道,可以作为学习动态规划系统的资料,包括题目: Pku acm 1179 Polygon Pku acm 1125 Stockbroker Grapevine Pku acm 1160 post office Pku ...

    POJ1942-Paths on a Grid

    【标题】"POJ1942-Paths on a Grid"是北京大学在线编程平台POJ上的一道经典算法题目,其主要目标是探索在网格上行走的路径问题。 【描述】该题目的描述中提到“解题报告+AC代码”,这暗示了解决此问题的关键在于...

    pku(poj)--2494--Acid Text--java代码

    根据给定的文件信息,我们可以总结出以下关于POJ(PKU)问题2494“Acid Text”以及其Java代码实现的关键知识点: ### 1. POJ(PKU)2494:Acid Text POJ(Peking University Online Judge)是北京大学的一个在线...

    PKU_poj 1197

    ACM PKU_poj 1197 仓库问题源代码,愿与大家共享。若谁更好的代码,多谢提供。

    POJ2942-Knights of the Round Table【Tarjan算法】

    POJ2942-Knights of the Round Table 【Tarjan算法】 解题报告+AC代码 http://hi.csdn.net/!s/F3L8HO ================================== 我的POJ所有解题报告:...

    pku1151.rar_Atlantis_pku 11_poj Atlant_poj Atlantis_poj11

    标题中的“pku1151.rar_Atlantis_pku 11_poj Atlant_poj Atlantis_poj11”似乎是指北京大学(Peking University, PKU)编程竞赛中的一道题目,编号为1151,与“Atlantis”这个主题相关。这道题目在多个平台上也被提及...

    POJ.rar_pku ac_pku.1050

    标题中的"POJ.rar_pku ac_pku.1050"暗示了这是一个与北京大学(Peking University, 简称PKU)编程竞赛相关的压缩文件,其中包含了作者通过验证(Passed All Cases, 简称AC)的代码,具体是针对PKU题目编号1050的问题。...

    POJ2739-Sum of Consecutive Prime Numbers

    【描述】该题目来源于北京大学的在线编程平台POJ(Problem Online Judge),编号为2739,名为"Sum of Consecutive Prime Numbers"。这是一道关于算法与数论的编程题目,要求参赛者编写程序来计算连续的素数之和。...

    poj3252.rar_pku 3252_poj32

    标题中的"poj3252.rar_pku 3252_poj32"表明这是一个与编程竞赛相关的资源,具体来说是北京大学(PKU)ACM竞赛中的问题3252。"poj"通常指的是"Programming Online Judge",这是一个在线编程比赛平台,而"Pku"则代表...

Global site tag (gtag.js) - Google Analytics