Codeforces Beta Round #1--C题(多边形求最小面积)
题目: http://codeforces.com/contest/1/problem/C
题意:给你一个正凸多边形的三个点,然后求出这个正凸多边形的面积的最小值。
方法是这样的:以这三个点做一个三角形,求出这个三角形的外心(外接圆的圆心),这个点也就是外接多边形的中心
然后找出内角所对应的边数的GCD
当然,内角所对应的边数不一定是整数,我们需要用double的GCD和LCM进行计算,求出最小边数。
#include <stdio.h>
#include <math.h>
const double eps=1e-4;
const double PI=acos(-1.0);
double gcd(double x,double y)
{
return y>eps? gcd(y,x-floor(x/y)*y):x;
}
double bcos(double a,double b,double c)
{
return acos((a*a+b*b-c*c)/(2*a*b));
}
int main()
{
double ax,ay,bx,by,cx,cy;
scanf("%lf%lf%lf%lf%lf%lf",&ax,&ay,&bx,&by,&cx,&cy);
double a=sqrt((ax-bx)*(ax-bx)+(ay-by)*(ay-by));
double b=sqrt((ax-cx)*(ax-cx)+(ay-cy)*(ay-cy));
double c=sqrt((bx-cx)*(bx-cx)+(by-cy)*(by-cy));
double p=(a+b+c)/2;
double s=sqrt(p*(p-a)*(p-b)*(p-c));
double R=(a*b*c)/(4*s);
double A=bcos(b,c,a);
double B=bcos(a,c,b);
double C=bcos(a,b,c);
double n=PI/gcd(A,gcd(B,C));
printf("%.11lf\n",R*R*sin(2*PI/n)*n/2);
return 0;
}
Codeforces Beta Round #1--C题(多边形求最小面积)相关推荐
- Codeforces Beta Round #5 B. Center Alignment 模拟题
B. Center Alignment 题目连接: http://www.codeforces.com/contest/5/problem/B Description Almost every tex ...
- Codeforces Beta Round #17 D. Notepad (数论 + 广义欧拉定理降幂)
Codeforces Beta Round #17 题目链接:点击我打开题目链接 大概题意: 给你 \(b\),\(n\),\(c\). 让你求:\((b)^{n-1}*(b-1)\%c\). \(2 ...
- Codeforces Beta Round #75 (Div. 1 Only) B. Queue 线段树。单点更新
http://codeforces.com/problemset/problem/91/B 题意: 给你n个数,求得i 到n中小于a[i]的最右边的a[j],然后求a[i]到a[j]之间包含了多少个数 ...
- codeforces beta round 1
codeforces beta round 1 A Theatre Square in the capital city of Berland has a rectangular shape with ...
- Codeforces Beta Round #51 D. Beautiful numbers 数位dp + 状态优化
传送门 文章目录 题意: 思路: 题意: 思路: 数位dpdpdp挺经典的一个题辣,有一个很明显的状态就是f[pos][num][lcm]f[pos][num][lcm]f[pos][num][lcm ...
- Codeforces Beta Round #22 (Div. 2 Only) E. Scheme(DFS+强连通)
题目大意 给了 n(2<=n<=105) 个点,从每个点 u 出发连向了一个点 v(共 n 条边) 现在要求添加最少的边使得整个图是一个强连通图 做法分析 这道题千万不要一般化:先求强连通 ...
- Codeforces Beta Round #4 (Div. 2 Only)
Codeforces Beta Round #4 (Div. 2 Only) A 水题 1 #include<bits/stdc++.h> 2 using namespace std; 3 ...
- Codeforces Beta Round #7
Codeforces Beta Round #7 http://codeforces.com/contest/7 A 水题 1 #include<bits/stdc++.h> 2 usin ...
- Codeforces Beta Round #1 A,B,C
A. Theatre Square time limit per test:1 second memory limit per test:256 megabytes input:standard in ...
最新文章
- 160525、高并发之mysql主从复制(linux)
- Mac下安装mysql5.7 完整步骤(图文详解)
- 如何将FPGA资源平民化?阿里工程师有了新突破
- linux 服务端口查询,linux 怎么查看服务和端口
- 把双系统的linux删除,双系统删除linux
- 让子弹飞,零成本让你的网站更快一点,boxopened http/3 (QUIC) 协议实战
- 均匀三次b样条曲线_西门子数控曲线加工进给速度优化指令
- wiznote can't networking
- DS1302时钟模块介绍及与USRAT HMI通信
- IEEE爬取摘要并翻译成中文
- 药品零售企业未建立计算机系统,新版GSP药品经营企业计算机系统要求
- vivado 如何添加时序约束
- 2013, Samara SAU ACM ICPC Quarterfinal Qualification Contest C.Victor‘s Research
- 随着新日益增多的技术,如何正确的提升自己?
- 如何使用Windows File Recovery工具在 Windows 10 上恢复丢失的文件
- tomcat服务器连接数问题解决
- CSS3:clip-path详解
- C# 实现WinForm窗口最小化到系统托盘代码
- idea项目在maven projects中置灰色的解决办法
- 万魔手游豆 1MORE × omthing AirFree Buds