题意:

有一个不保证凸的多边形,让你滚一圈,计算某点滚出的轨迹多长。

题解:

求出凸包后,以每个点为转轴,转轴到定点的距离为半径,用余弦定理计算圆心角,计算弧长。

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
using namespace std;
int main()
{
int t,case1=;
cin>>t;
while(t--)
{
case1++;
int n;
cin>>n;
int x[],y[];//贮存坐标
for(int i=;i<=n;i++)
{
cin>>x[i]>>y[i];
}
int xx,yy;
cin>>xx>>yy;
double dis[];
for(int i=;i<=n;i++)
{
dis[i]=(x[i]-xx)*(x[i]-xx)+(y[i]-yy)*(y[i]-yy);
//cout<<dis[i]<<endl;
}
//cout<<endl;
double ankle[];
for(int i=;i<=n;i++)
{
double t1,t2,t3;
if(xx==x[i]&&yy==y[i])
continue;
if(i==)
{
t1=sqrt((x[]-x[])*(x[]-x[])+(y[]-y[])*(y[]-y[]));
t2=sqrt((x[n]-x[])*(x[n]-x[])+(y[n]-y[])*(y[n]-y[]));
t3=sqrt((x[n]-x[])*(x[n]-x[])+(y[n]-y[])*(y[n]-y[]));
}
else if(i==n)
{
t1=sqrt((x[n]-x[])*(x[n]-x[])+(y[n]-y[])*(y[n]-y[]));
t2=sqrt((x[n]-x[n-])*(x[n]-x[n-])+(y[n]-y[n-])*(y[n]-y[n-]));
t3=sqrt((x[n-]-x[])*(x[n-]-x[])+(y[n-]-y[])*(y[n-]-y[]));
}
else
{
t1=sqrt((x[i+]-x[i])*(x[i+]-x[i])+(y[i+]-y[i])*(y[i+]-y[i]));
t2=sqrt((x[i]-x[i-])*(x[i]-x[i-])+(y[i]-y[i-])*(y[i]-y[i-]));
t3=sqrt((x[i-]-x[i+])*(x[i-]-x[i+])+(y[i-]-y[i+])*(y[i-]-y[i+]));
}
//cout<<t1<<" "<<t2<<" "<<t3<<" ";
ankle[i]=acos((t1*t1+t2*t2-t3*t3)/(*t1*t2));
//cout<<ankle[i]<<" ";
//cout<<endl;
} double l=;
for(int i=;i<=n;i++)
{
l+=sqrt(dis[i])*(acos(-1.0)-ankle[i]);
}
printf("Case #%d: %.3lf\n",case1,l);
}
return ;
}

Codeforces gym102222 B.Rolling The Polygon 凸包/余弦定理的更多相关文章

  1. Codeforces 437E The Child and Polygon(间隔DP)

    题目链接:Codeforces 437E The Child and Polygon 题目大意:给出一个多边形,问说有多少种切割方法.将多边形切割为多个三角形. 解题思路:首先要理解向量叉积的性质,一 ...

  2. hdu 4033Regular Polygon(二分+余弦定理)

    Regular Polygon Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65768/65768 K (Java/Others)T ...

  3. POJ 2007 Scrambled Polygon 凸包

    Scrambled Polygon Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 7214   Accepted: 3445 ...

  4. POJ 2007 Scrambled Polygon [凸包 极角排序]

    Scrambled Polygon Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 8636   Accepted: 4105 ...

  5. 【codeforces 755D】PolandBall and Polygon

    time limit per test4 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...

  6. Codeforces 437E The Child and Polygon

    http://codeforces.com/problemset/problem/437/E 题意:求一个多边形划分成三角形的方案数 思路:区间dp,每次转移只从一个方向转移(L,R连线的某一侧),能 ...

  7. Codeforces 1045E. Ancient civilizations 构造 计算几何 凸包

    原文链接https://www.cnblogs.com/zhouzhendong/p/CF1045E.html 4K码量构造题,CF血腥残暴! 题解 首先,如果所有点颜色相同,那么直接连个菊花搞定. ...

  8. POJ 2007 Scrambled Polygon 凸包点排序逆时针输出

    题意:如题 用Graham,直接就能得到逆时针的凸包,找到原点输出就行了,赤果果的水题- 代码: /* * Author: illuz <iilluzen[at]gmail.com> * ...

  9. 计蒜客 The 2018 ACM-ICPC Chinese Collegiate Programming Contest Rolling The Polygon

    include <iostream> #include <cstdio> #include <cstring> #include <string> #i ...

随机推荐

  1. layui多图上传加隐藏域

    我的情况是,通过layui上传图片调用后端,后端将图片上传后返回图片路径,上传成功后将图片在页面显示出来(避免用户网速不稳定,图片其实还没上传成功就进行下一步操作),然后同步每个图片增加隐藏域,最终表 ...

  2. Tomcat内存问题解决办法

    使用Java程序从数据库中查询大量的数据时出现异常:java.lang.OutOfMemoryError: Java heap space 在JVM中如果98%的时间是用于GC且可用的 Heap si ...

  3. 2017 NOIp 初赛体验

    很菜...我还是太蒟蒻了. d 老师太强了... 应该能有七十几分 初赛稳了 Update: 五十几分...

  4. mysql全家桶(二)数据操作

    一.数据操作1.增#新增insert into 表名(字段列表) values(值列表);INSERT INTO table_name ( field1, field2,...fieldN ) VAL ...

  5. java中 抽象类和接口的区别

    一. 什么是抽象类及什么是抽象方法 抽象方法是一种特殊的方法:他只有声明,而没有具体实现,抽象方法的声明格式为: abstract void funName(); 抽象方法必须用 abstract 修 ...

  6. python 去除字符串两端字符串

    转载:http://blog.sina.com.cn/s/blog_940224600100w8l0.html Python中的strip用于去除字符串的首位字符,同理,lstrip用于去除左边的字符 ...

  7. C# Winform版批量压缩图片程序

    需求 上周,领导给我分配了一个需求:服务器上的图片文件非常大,每天要用掉两个G的大小的空间,要做一个自动压缩图片的工具处理这些大图片.领导的思路是这样的: 1)打开一个图片,看它的属性里面象素是多少, ...

  8. upc组队赛3 T-net【贪心】

    T-net 题目描述 T-net which is a new telecommunications company, plans to install its base stations in th ...

  9. python学习笔记:文件操作和集合

    一.文件操作 文件读写步骤:有一个文件,打开文件,操作文件读写文件,关闭文件. python 文件读写模式r,r+,w,w+,a,a+的区别(附代码示例) 模式 可做操作 若文件不存在 是否覆盖 r ...

  10. python调用tushare获取沪深股通十大成交股

    接口:hsgt_top10 描述:获取沪股通.深股通每日前十大成交详细数据 注:tushare库下载和初始化教程,请查阅我之前的文章 输入参数 名称      |      类型      |    ...