列表

详情


NC200373. Viviani

描述

输入描述

依次给出等边三角形的3个顶点坐标A, B, C 和P点的二维几何坐标。(

保证P点在等边三角形内,包括边。

输出描述

如图,求P点到各边的距离和(s + t + u)。

只要你的答案与标准答案误差的绝对值在以内都会算作正确。

示例1

输入:

0 0
10 0
5 8.66025403784
5 2.88675134595

输出:

8.66025403784

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C++14(g++5.4) 解法, 执行用时: 4ms, 内存消耗: 404K, 提交时间: 2019-12-14 12:45:55

#include<bits/stdc++.h>
using namespace std;
double x[10],y[10];
int main()
{
    for(int i=0;i<4;++i) scanf("%lf%lf",x+i,y+i);
    printf("%.10f\n",sqrt(3*((x[0]-x[1])*(x[0]-x[1])+(y[0]-y[1])*(y[0]-y[1])))/2);
    return 0;
}

C++(g++ 7.5.0) 解法, 执行用时: 3ms, 内存消耗: 476K, 提交时间: 2022-08-06 14:27:43

#include<iostream>
#include<cmath>
using namespace std;
int main()
{
	double a,b,c,d,m;
	cin>>a>>b>>c>>d>>m>>m>>m>>m;
	double q=sqrt((a-c)*(a-c)+(b-d)*(b-d));
	double sum=0.5*sqrt(3)*q;
	printf("%.11f",sum);
	return 0;
}

C++(clang++ 11.0.1) 解法, 执行用时: 3ms, 内存消耗: 472K, 提交时间: 2022-09-01 09:35:58

#include<bits/stdc++.h>
using namespace std;
double a,b,c,d;
int main() 
{
	cin>>a>>b>>c>>d;
	printf("%.8f",sqrt(3)/2*sqrt((a-c)*(a-c)+(b-d)*(b-d)));
}

Python3(3.5.2) 解法, 执行用时: 32ms, 内存消耗: 3380K, 提交时间: 2019-12-13 22:55:22

a=list(map(float,input().split()))
b=list(map(float,input().split()))
print((((a[0]-b[0])**2+(a[1]-b[1])**2)**0.5)*3**0.5/2)

上一题