关闭

蓝桥 ADV-230 算法提高 12-1三角形 【数学公式】

标签: 蓝桥数学公式
427人阅读 评论(0) 收藏 举报
分类:



  算法提高 12-1三角形  
时间限制:1.0s   内存限制:256.0MB
    
问题描述
  为二维空间中的点设计一个结构体,在此基础上为三角形设计一个结构体。分别设计独立的函数计算三角形的周长、面积、中心和重心。输入三个点,输出这三个点构成的三角形的周长、面积、外心和重心。结果保留小数点后2位数字。
样例输出
与上面的样例输入对应的输出。
例:
数据规模和约定
  输入数据中每一个数的范围。
  例:doule型表示数据。




题目链接:

  http://lx.lanqiao.cn/problem.page?gpid=T415

题目大意:

  给三角形三点坐标

  计算周长 面积 外心 重心

题目思路:

  【数学公式】

  带入数学公式即可。

  外心:
    x = △x/△, y = △y/△
    其中 △ = 2(xa-xb)(yc-yb) - 2(ya-yb)(xc-xb)
    △x = (yc-yb)(xa^2+ya^2-xb^2-yb^2) - (ya-yb)(xc^2+yc^2-xb^2-yb^2)
    △y = (xa-xb)(xc^2+yc^2-xb^2-yb^2) - (xc-xb)(xa^2+ya^2-xb^2-yb^2)

  重心:

    x=(xa+xb+xc)/3, y=(ya+yb+yc)/3




/****************************************************
	
	Author : Coolxxx
	Copyright 2017 by Coolxxx. All rights reserved.
	BLOG : http://blog.csdn.net/u010568270
	
****************************************************/
#include<bits/stdc++.h>
#pragma comment(linker,"/STACK:1024000000,1024000000")
#define abs(a) ((a)>0?(a):(-(a)))
#define lowbit(a) (a&(-a))
#define sqr(a) ((a)*(a))
#define mem(a,b) memset(a,b,sizeof(a))
const double eps=1e-8;
const int J=10000;
const int mod=1000000007;
const int MAX=0x7f7f7f7f;
const double PI=3.14159265358979323;
const int N=1004;
using namespace std;
typedef long long LL;
double anss;
LL aans;
int cas,cass;
int n,m,lll,ans;
class point
{
public:
	double x,y;
};
class triangle
{
public:
	point a,b,c;
	double aa,bb,cc,p;
	triangle(point i,point j,point k)
	{
		a=i,b=j,c=k;
		aa=sqrt(sqr(a.x-b.x)+sqr(a.y-b.y));
		bb=sqrt(sqr(a.x-c.x)+sqr(a.y-c.y));
		cc=sqrt(sqr(b.x-c.x)+sqr(b.y-c.y));
		p=(aa+bb+cc)/2;
	}
	double perimeter()
	{
		return p+p;
	}
	double area()
	{
		return sqrt(p*(p-aa)*(p-bb)*(p-cc));
	}
	point circumcenter()
	{
		point p;
		p.x=(c.y-b.y)*(sqr(a.x)+sqr(a.y)-sqr(b.x)-sqr(b.y))-(a.y-b.y)*(sqr(c.x)+sqr(c.y)-sqr(b.x)-sqr(b.y));
		p.x/=2*(a.x-b.x)*(c.y-b.y)-2*(a.y-b.y)*(c.x-b.x);
		p.y=(a.x-b.x)*(sqr(c.x)+sqr(c.y)-sqr(b.x)-sqr(b.y))-(c.x-b.x)*(sqr(a.x)+sqr(a.y)-sqr(b.x)-sqr(b.y));
		p.y/=2*(a.x-b.x)*(c.y-b.y)-2*(a.y-b.y)*(c.x-b.x);
		return p;
	}
	point centroid()
	{
		point p;
		p.x=(a.x+b.x+c.x)/3;
		p.y=(a.y+b.y+c.y)/3;
		return p;
	}
};
int main()
{
	#ifndef ONLINE_JUDGE
//	freopen("1.txt","r",stdin);
//	freopen("2.txt","w",stdout);
	#endif
	int i,j,k,l;
	int x,y,z;
//	for(scanf("%d",&cass);cass;cass--)
//	for(scanf("%d",&cas),cass=1;cass<=cas;cass++)
//	while(~scanf("%s",s))
//	while(~scanf("%d",&n))
	if(1)
	{
		point a,b,c;
		cin>>a.x>>a.y>>b.x>>b.y>>c.x>>c.y;
		triangle p(a,b,c);
		a=p.circumcenter();
		b=p.centroid();
		printf("%.2lf\n",p.perimeter());
		printf("%.2lf\n",p.area());
		printf("%.2lf %.2lf\n",a.x,a.y);
		printf("%.2lf %.2lf\n",b.x,b.y);
	}
	return 0;
}
/*
//

//
*/


  算法提高 12-1三角形  
时间限制:1.0s   内存限制:256.0MB
    
问题描述
  为二维空间中的点设计一个结构体,在此基础上为三角形设计一个结构体。分别设计独立的函数计算三角形的周长、面积、中心和重心。输入三个点,输出这三个点构成的三角形的周长、面积、外心和重心。结果保留小数点后2位数字。
样例输出
与上面的样例输入对应的输出。
例:
数据规模和约定
  输入数据中每一个数的范围。
  例:doule型表示数据。
0
0
查看评论

算法提高 ADV-230 12-1三角形

问题描述   为二维空间中的点设计一个结构体,在此基础上为三角形设计一个结构体。分别设计独立的函数计算三角形的周长、面积、中心和重心。输入三个点,输出这三个点构成的三角形的周长、面积、外心和重心。结果保留小数点后2位数字。 样例输出 与上面的样例输入对应的输出。 例: ...
  • smile_caijx
  • smile_caijx
  • 2017-09-20 23:33
  • 197

算法提高 12-1三角形

给定三角形三个顶点的坐标,如何求三角形的外心的坐标呢? 例如 :给定a(x1,y1) b(x2,y2) c(x3,y3)求外接圆心坐标O(x,y) 1. 首先,外接圆的圆心是三角形三条边的垂直平分线的交点,我们根据圆心到顶点的距离相等,可以列出以下方程: (x1-x)(x1-x)...
  • qq_32734731
  • qq_32734731
  • 2017-01-31 17:06
  • 841

蓝桥杯算法提高 12-1三角形

纯数学题,外心的公式是在网上百度的,实在是不记得了。#include<iostream> #include<cstdio> #include<cmath> #include<cstring> #include<algorithm> #inc...
  • bluekrystal
  • bluekrystal
  • 2017-04-07 16:02
  • 159

蓝桥杯 算法提高 12-1三角形 (Java解题)

问题描述   为二维空间中的点设计一个结构体,在此基础上为三角形设计一个结构体。分别设计独立的函数计算三角形的周长、面积、中心和重心。输入三个点,输出这三个点构成的三角形的周长、面积、外心和重心。结果保留小数点后2位数字。 样例输出 与上面的样例输入对应的输出。 例: ...
  • mcp3128
  • mcp3128
  • 2017-11-28 21:34
  • 73

蓝桥杯 算法提高 12-1三角形 【计算几何_三角形】【全是板子】

算法提高 12-1三角形 时间限制:1.0s 内存限制:256.0MB 问题描述   为二维空间中的点设计一个结构体,在此基础上为三角形设计一个结构体。分别设计独立的函数计算三角形的周长、面积、中心和重心。输入三个点,输出这三个点构成的三角形的周长、面积、外心和重心。结果保留小数点后2...
  • nobleman__
  • nobleman__
  • 2018-02-16 23:12
  • 14

算法提高 输出正反三角形

使用循环结构打印下述图形,打印行数n由用户输入。图中每行事实上包括两部分,中间间隔空格字符数m也由用户输入。 样例输入n,m: 5 4样例输出: * ********* *** ******* ***** ***** ******* ************ ...
  • qq_29656961
  • qq_29656961
  • 2017-01-12 10:22
  • 500

noip2012摆花

1.      摆花   题解: 说实话,我觉得这题题意不够明确,导致有些人一个测试点也过不去,坑啊。   做这题有个要注意的地方,就是并不要求每种花都要有!!   Solution 1 ...
  • AQ14AQ1
  • AQ14AQ1
  • 2014-04-30 11:03
  • 1309

蓝桥杯 算法提高 快乐司机

问题描述   "嘟嘟嘟嘟嘟嘟   喇叭响   我是汽车小司机   我是小司机   我为祖国运输忙   运输忙"   这是儿歌“快乐的小司机”。话说现在当司机光有红心不行,还要多拉快跑。多拉不是超载,是要让所载货物价值最大,特别是在当前油价日新月异的时候。司机所拉货物...
  • molashaonian
  • molashaonian
  • 2015-12-10 13:41
  • 1363

三角形数学公式

1.直角三角形,已知BC长度,和B角度 ,求AB长度  float length = BC长度 *Mathf.Cos (角B*Mathf.Deg2Rad)
  • qq617119142
  • qq617119142
  • 2015-08-02 22:55
  • 914

蓝桥杯 算法提高 矩阵相乘

算法提高 矩阵相乘 时间限制:1.0s 内存限制:256.0MB 提交此题 问题描述   小明最近在为线性代数而头疼,线性代数确实很抽象(也很无聊),可惜他的老师正在讲这矩阵乘法这一段内容。   当然,小明上课打瞌睡也没问题,但线性代数的习题可是很可怕的。   小明希望你来帮他完成这...
  • qq_32734731
  • qq_32734731
  • 2017-02-20 19:13
  • 554
    个人资料
    • 访问:80085次
    • 积分:2540
    • 等级:
    • 排名:第17068名
    • 原创:243篇
    • 转载:2篇
    • 译文:0篇
    • 评论:17条
    文章分类
    最新评论