计蒜客 The 2018 ACM-ICPC Chinese Collegiate Programming Contest Rolling The Polygon
2024-08-23 20:12:55
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 ;
}
最新文章
- 从“差不多了”到 正式发布 -- 新浪微博WinPhone UWP版诞生记
- NE Upgrade python script. Need to write a Tkinter GUI for it
- Ruby学习笔记
- MySQL Server 5.6 配置文件my.ini 以及windows上mysql表名区分大小写
- OC 实例方法和类方法区别
- SQL Server 2008维护计划 出错 无法实现自动备份
- Sqlserver 原生 MD5 函数(转)
- cocos2dx 自己主动加入cpp文件到android.mk
- 标准SQL语言的用法
- HDU ACM 1066 Last non-zero Digit in N!
- WebIM(3)----性能测试
- Zabbix3.4-RHEL 7.4 X64 YUM联网安装
- 【原创】大数据基础之Spark(7)spark读取文件split过程(即RDD分区数量)
- 双向数据绑定原生js
- bzoj 1006
- 推特算法,分布式ID
- C# 异步上传图片案例
- 原生js实现的瀑布流布局
- jQuery源码学习扒一扒jQuery对象初使化
- PHP快速入门
热门文章
- 048 Rotate Image 旋转图像
- docker postgresql FATAL: could not access private key file ";/etc/ssl/private/ssl-cert-snakeoil.key";: Permission denied
- AXURE-手把手教你做汉化
- 在CentOS上源码安装Nginx
- td 内容自动换行 table表格td设置宽度后文字太多自动换行
- typedef int status
- Got error 28 from storage engine的错误处理
- UI设计中蕴涵着系统重要的数据结构与功能设计
- SharePoint 2013 安装配置(1)
- Python3+Selenium3+webdriver学习笔记7(选择多链接的结果、iframe、下拉框)