蓝桥 ADV-230 算法提高 12-1三角形 【数学公式】
算法提高 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-;
const int J=;
const int mod=;
const int MAX=0x7f7f7f7f;
const double PI=3.14159265358979323;
const int N=;
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)/;
}
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/=*(a.x-b.x)*(c.y-b.y)-*(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/=*(a.x-b.x)*(c.y-b.y)-*(a.y-b.y)*(c.x-b.x);
return p;
}
point centroid()
{
point p;
p.x=(a.x+b.x+c.x)/;
p.y=(a.y+b.y+c.y)/;
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()
{
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 ;
}
/*
//
//
*/
蓝桥 ADV-230 算法提高 12-1三角形 【数学公式】的更多相关文章
- Java实现 蓝桥杯VIP 算法提高 三角形面积
算法提高 三角形面积 时间限制:1.0s 内存限制:256.0MB 问题描述 由三角形的三边长,求其面积. 提示:由三角形的三边a,b,c求面积可以用如下的公式: s=(a+b+c)/2 输入格式 由 ...
- Java实现 蓝桥杯VIP 算法提高 勾股数
算法提高 勾股数 时间限制:1.0s 内存限制:256.0MB 问题描述 勾股数是一组三个自然数,a < b < c,以这三个数为三角形的三条边能够形成一个直角三角形 输出所有a + b ...
- 算法笔记_107:蓝桥杯练习 算法提高 学霸的迷宫(Java)
目录 1 问题描述 2 解决方案 1 问题描述 问题描述 学霸抢走了大家的作业,班长为了帮同学们找回作业,决定去找学霸决斗.但学霸为了不要别人打扰,住在一个城堡里,城堡外面是一个二维的格子迷宫,要 ...
- 算法笔记_096:蓝桥杯练习 算法提高 求最大值(Java)
目录 1 问题描述 2 解决方案 1 问题描述 问题描述 给n个有序整数对ai bi,你需要选择一些整数对 使得所有你选定的数的ai+bi的和最大.并且要求你选定的数对的ai之和非负,bi之和非负 ...
- 算法笔记_081:蓝桥杯练习 算法提高 矩阵乘法(Java)
目录 1 问题描述 2 解决方案 1 问题描述 问题描述 有n个矩阵,大小分别为a0*a1, a1*a2, a2*a3, ..., a[n-1]*a[n],现要将它们依次相乘,只能使用结合率,求最 ...
- Java实现 蓝桥杯VIP 算法提高 聪明的美食家
算法提高 聪明的美食家 时间限制:1.0s 内存限制:256.0MB 问题描述 如果有人认为吃东西只需要嘴巴,那就错了. 都知道舌头有这么一个特性,"由简入奢易,由奢如简难"(据好 ...
- Java实现 蓝桥杯VIP 算法提高 计算器
算法提高 计算器 时间限制:1.0s 内存限制:256.0MB [问题描述] 王小二的计算器上面的LED显示屏坏掉了,于是他找到了在计算器维修与应用系学习的你来为他修计算器. 屏幕上可以显示0~9的数 ...
- Java实现 蓝桥杯VIP 算法提高 质数的后代
算法提高 质数的后代 时间限制:1.0s 内存限制:256.0MB 问题描述 在上一季里,曾提到过质数的孤独,其实从另一个角度看,无情隔膜它们的合数全是质数的后代,因为合数可以由质数相乘结合而得. 如 ...
- Java实现 蓝桥杯VIP 算法提高 邮票面值设计
算法提高 邮票面值设计 时间限制:1.0s 内存限制:256.0MB 问题描述 给定一个信封,最多只允许粘贴N张邮票,计算在给定K(N+K≤13)种邮票的情况下(假定所有的邮票数量都足够),如何设计邮 ...
- Java实现 蓝桥杯VIP 算法提高 彩票
算法提高 彩票 时间限制:1.0s 内存限制:256.0MB 问题描述 为丰富男生节活动,贵系女生设置彩票抽奖环节,规则如下: 1.每张彩票上印有7个各不相同的号码,且这些号码的取值范围为[1, 33 ...
随机推荐
- CSU 2018年12月月赛 G(2219): Coin
Description 有这样一个众所周知的问题: 你面前有7个硬币,其中有一个劣质的(它比正常的硬币轻一点点),你有一个天平,问需要你需要使用天平多少次能保证找到那个劣质的硬币. 众所周知的算法是: ...
- 关于Map的遍历
想起之前有人问过我这个,那就顺手写一下Map的遍历 Map<Integer, String> map = new HashMap<Integer, String>(); map ...
- mycat——未完成
https://www.cnblogs.com/joylee/p/7513038.html https://blog.csdn.net/wrs120/article/details/80417345 ...
- 修改 root密码
sudo su #切换到root账户sudo passwd root #输入密码
- 关于Python构建微服务的思考(一)
一:什么是微服务? 微服务是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成. 系统中的各个微服务可被独立部署,各个微服务之间是松耦合的. 每个微服务仅关注于完成一件任务并很好地完成该任务. ...
- Codeforce 741B Arpa's weak amphitheater and Mehrdad's valuable Hoses(并查集&分组背包)
题意: 给定n个价值为b 花费为w的物品, 然后某些物品是属于同一个组的, 给定一个花费限制V, 求在小于等于V的情况下取得到的价值最大为多少,能对于同一个组的物品,要么全取,要么只取一个. 分析: ...
- Swagger UI教程
文档源地址 http://www.68idc.cn/help/makewebs/qitaasks/20160621620667.html Swagger-UI本身只提供在线测试功能,要集成它还需要告诉 ...
- Microsoft Azure 资料整理
鉴于Microsoft Azure的技术迭代更新相当快,所以推荐大家还是以官方文档为准. 以Global Azure 的为主,Mooncake版本自行删减 首先推荐Azure for MSDN htt ...
- c++中的string常用函数用法总结!
标准c++中string类函数介绍 注意不是CString 之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必 担心内存是否足够.字符串长度等等,而且作 ...
- CF-697B Barnicle与691C Exponential notation
无聊写两个题解吧,上午做比赛拉的,感触很多! B. Barnicle time limit per test 1 second memory limit per test 256 megabytes ...