include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <algorithm>
#include <utility>
#include <vector>
#include <map>
#include <queue>
#include <stack>
#include <cstdlib>
#include <cmath>
typedef long long ll;
#define lowbit(x) (x&(-x))
#define ls l,m,rt<<1
#define rs m+1,r,rt<<1|1
using namespace std;
#define pi acos(-1)
const int N=;
struct Node{
int x,y;
}node[N];
int main()
{
int t,n;
double tx,ty;
scanf("%d",&t);
for(int i=;i<=t;i++)
{
scanf("%d",&n);
for(int i=;i<n;i++){
scanf("%lf%lf",&node[i].x,&node[i].y);//lf
}
scanf("%lf%lf",&tx,&ty);
// 为了下面的第n次旋转
node[n].x=node[].x,node[n].y=node[].y;
node[n+].x=node[].x,node[n+].y=node[].y;
double ans=;
for(int i=;i<n;i++)//要转n次
{
double a=sqrt(pow(node[i].x-node[i+].x,)+pow(node[i].y-node[i+].y,));
double b=sqrt(pow(node[i+].x-node[i+].x,)+pow(node[i+].y-node[i+].y,));
double c=sqrt(pow(node[i].x-node[i+].x,)+pow(node[i].y-node[i+].y,));
//利用余弦定理求角度
// pi-acos((a*a+b*b-c*c)/(2*a*b)) 为node[i+1]转过的角度,也就是(tx,ty)转过的角度
double l=pi-acos((a*a+b*b-c*c)/(*a*b));//一个小数,因为最后也以小数形式输出。
//弧长=半径*弧度
double r=sqrt(pow(node[i+].x-tx,)+pow(node[i+].y-ty,));
ans+=l*r;
}
printf("Case #%d: %.3f\n",i,ans);
}
return ;
}

计蒜客 The 2018 ACM-ICPC Chinese Collegiate Programming Contest Rolling The Polygon的更多相关文章

  1. ACM ICPC, JUST Collegiate Programming Contest (2018) Solution

    A:Zero Array 题意:两种操作, 1 p v  将第p个位置的值改成v  2  查询最少的操作数使得所有数都变为0  操作为可以从原序列中选一个非0的数使得所有非0的数减去它,并且所有数不能 ...

  2. ACM ICPC, Amman Collegiate Programming Contest (2018) Solution

    Solution A:Careful Thief 题意:给出n个区间,每个区间的每个位置的权值都是v,然后找长度为k的区间,使得这个区间的所有位置的权值加起来最大,输出最大权值, 所有区间不重叠 思路 ...

  3. The 2018 ACM-ICPC Chinese Collegiate Programming Contest Moving On

    Firdaws and Fatinah are living in a country with nn cities, numbered from 11 to nn.Each city has a r ...

  4. ICPC — International Collegiate Programming Contest Asia Regional Contest, Yokohama, 2018–12–09 题解

    目录 注意!!此题解存在大量假算法,请各位巨佬明辨! Problem A Digits Are Not Just Characters 题面 题意 思路 代码 Problem B Arithmetic ...

  5. The 2018 ACM-ICPC Chinese Collegiate Programming Contest Take Your Seat

    /* 证明过程如下 :第一种情况:按1到n的顺序上飞机,1会随意选一个,剩下的上去时若与自己序号相同的座位空就坐下去,若被占了就也会随意选一个.求最后一个人坐在应坐位置的概率 */ #include ...

  6. The 2018 ACM-ICPC Chinese Collegiate Programming Contest Fight Against Monsters

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

  7. The 2018 ACM-ICPC Chinese Collegiate Programming Contest Caesar Cipher

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

  8. The 2018 ACM-ICPC Chinese Collegiate Programming Contest Maximum Element In A Stack

    //利用二维数组模拟 #include <iostream> #include <cstdio> #include <cstring> #include <s ...

  9. 计蒜客 28449.算个欧拉函数给大家助助兴-大数的因子个数 (HDU5649.DZY Loves Sorting) ( ACM训练联盟周赛 G)

    ACM训练联盟周赛 这一场有几个数据结构的题,但是自己太菜,不会树套树,带插入的区间第K小-替罪羊套函数式线段树, 先立个flag,BZOJ3065: 带插入区间K小值 计蒜客 Zeratul与Xor ...

随机推荐

  1. Yahoo!团队实践分享:网站性能优化的34条黄金守则

    (一)内容 Yahoo!的Exceptional Performance团队为改善Web性能带来最佳实践.他们为此进行了一系列的实验.开发了各种工具.写了大量的文章和博客并在各种会议上参与探讨.最佳实 ...

  2. SpringCloud多模块整理

    1.项目架构 —— project        父项目 —— client        子项目(客户端)    对外暴露的接口 —————— pom.xml          子项目的pom文件 ...

  3. python之简单登陆

    简单的登陆 要求: 1.用户名输错3次,系统退出 2.密码输错3次,账号被禁用 3.使用文件操作知识 流程图: 项目代码: def login(): i=0 while i <3 : name ...

  4. DatabaseMetaData类

    DatabaseMetaData类是java.sql包中的类,利用它可以获取我们连接到的数据库的结构.存储等很多信息.如: 1.数据库与用户,数据库标识符以及函数与存储过程.         2.数据 ...

  5. BZOJ 4881: [Lydsy2017年5月月赛]线段游戏

    4881: [Lydsy2017年5月月赛]线段游戏 Time Limit: 3 Sec  Memory Limit: 256 MBSubmit: 164  Solved: 81[Submit][St ...

  6. Red Hat Enterprise Linux(RHEL)中yum的repo文件详解

    Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器.基于RPM包管理,能够从指定的服务器自动下载 ...

  7. [转]maven项目部署到tomcat

    其实maven项目部署到tomcat的方式很多,我从一开始的打war包到tomcat/webapps目录,到使用tomcat-maven插件,到直接使用servers部署,一路来走过很多弯路. 下面就 ...

  8. 虚拟机VMware Workstation Pro装Mac遇到的一些问题【总结】

    1. 问题:VM找不到Apple Mac X(M)? 解决方法:在网上找unlocker20*下载: 电脑装一个python3版本以下的版本(装python,主要是编译.因为下载的插件是python写 ...

  9. AE开发关于OnMapReplaced方法的使用原理

    The OnMapReplaced event is triggered whenever the IMapControl2::Map is replaced by another map, such ...

  10. UVALive 3938 Ray, Pass me the dishes! (动态最大连续和)

    题意:求一个动态区间的最大连续和. 静态版本的O(n)算法显示不适用了,但是可以用线段树分治,因为一个连续和要在两边的区间,要么跨越两边,对于一个结点维护最大前缀和,后缀和,子区间连续和. 题目要求输 ...