2019银川网络赛 Rolling The Polygon  简单的计算几何
Bahiyyah has a convex polygon with n vertices P0,P1,……,Pn−1 in the counterclockwise order. Two vertices with consecutive indexes are adjacent, and besides, P0 and Pn−1 are adjacent. She also assigns a point Q inside the polygon which may appear on the border.Now, Bahiyyah decides to roll the polygon along a straight line and calculate the length of the trajectory (or track) of point Q.To help clarify, we suppose Pn P0,Pn1 P1 and assume the edge between P0 and P1 is lying on the line at first.At that point when the edge between Pi−1 and Pi lies on the line, Bahiyyah rolls the polygon forward rotating the polygon along the vertex Pi until the next edge (which is between Pi and Pi1 ) meets the line. She will stop the rolling when the edge between Pn and Pn1 (which is same as the edge between P0and P1 ) meets the line again.输入The input contains several test cases, and the first line is a positive integer T indicating the number of test cases which is up to 50.For each test case, the first line contains an integer n (3≤n≤50) indicating the number of vertices of the given convex polygon. Following n lines describe vertices of the polygon in the counterclockwise order. The i-th line of them contains two integers xi−1 and yi−1 , which are the coordinates of point Pi−1 . The last line contains two integers xQ and yQ , which are the coordinates of point Q.We guarantee that all coordinates are in the range of -103 to 103 , and point Q is located inside the polygon or lies on its border.输出For each test case, output a line containing Case #x: y, where x is the test case number starting from 1, and y is the length of the trajectory of the point Q rounded to 3 places. We guarantee that 4-th place after the decimal point in the precise answer would not be 4 or 5.样例输入复制样例数据4 4 0 0 2 0 2 2 0 2 1 1 3 0 0 2 1 1 2 1 1 5 0 0 1 0 2 2 1 3 -1 2 0 0 6 0 0 3 0 4 1 2 2 1 2 -1 1 1 0样例输出Case #1: 8.886 Case #2: 7.318 Case #3: 12.102 Case #4: 14.537提示The following figure is the the trajectory of the point Q in the fi rst sample test case.虽然是原题但是自己比赛的时候没做出来。主要因为当时读错题了。。。赛后理解对题意之后这个题竟然还看个四十多分钟总结一下吧。题意 给定一个凸多边形和多边形内的一点按逆序给出。问这个多边形绕着自己的边旋转一周这个点走过的距离。注意是绕着自己的边我以为是绕着x或y轴所以一直不知道如何下手。思路先看下画的图吧是第二个样例的图可以很清晰的发现就是转了一个角度这个角度就是它所对应角的补角互为补角是相加180度高中的数学都快忘了哈哈哈。然后用余弦定理求acos值就可以了对应每条边注意i1和in时对应的边的小细节。然后用扇形的弧度公式求解长度就可以了。S长度R半径*acos角度#includebits/stdc.h #define mem(a,b) memset(a,b,sizeof(a)) #define ll long long #pragma GCC optimize(2) #define PI 3.1415926 double esp1e-10; using namespace std; const int maxx1e415; struct stu { double x,y; double juli;//半径 }A[maxx]; int main() { ll i,j,k,t,x; ll n,m; scanf(%lld,t); for(int p1;pt;p) { scanf(%lld,n); double changdu0; for(i1;in1;i) { scanf(%lf%lfd,A[i].x,A[i].y); } for(i1;in;i) { A[i].juli(A[i].x-A[n1].x)*(A[i].x-A[n1].x)(A[i].y-A[n1].y)*(A[i].y-A[n1].y); A[i].julisqrt(A[i].juli); } A[0].xA[n].x; A[0].yA[n].y; A[n1].xA[1].x; A[n1].yA[1].y; for(i1;in;i) { double a1(A[i].x-A[i1].x)*(A[i].x-A[i1].x)(A[i].y-A[i1].y)*(A[i].y-A[i1].y); double b1(A[i].x-A[i-1].x)*(A[i].x-A[i-1].x)(A[i].y-A[i-1].y)*(A[i].y-A[i-1].y); double c1(A[i-1].x-A[i1].x)*(A[i-1].x-A[i1].x)(A[i-1].y-A[i1].y)*(A[i-1].y-A[i1].y); a1sqrt(a1);b1sqrt(b1);c1sqrt(c1); double jiaoduacos((a1*a1b1*b1-c1*c1)/(2*a1*b1)); changdu(acos(-1.0)-jiaodu)*(A[i].juli);// 弧度公式 } printf(Case #%d: %.3lf\n,p,changdu); } return 0; }补题不重要重要的是回顾一下这样的小知识以后别蠢蠢的连这种水题都做不出来。。。

相关新闻

【单片机毕业设计推荐】基于 STM32 的环境温湿度与水位智能监控系统设计,基于 STM32 的加湿补水智能控制与语音报警系统设计(011604)

【单片机毕业设计推荐】基于 STM32 的环境温湿度与水位智能监控系统设计,基于 STM32 的加湿补水智能控制与语音报警系统设计(011604)

文章目录20 个相关毕业设计备选题目项目研究背景摘要总体方案核心功能基础功能核心功能辅助功能技术路线项目演示关于我们项目案例源码获取温馨提示:本人主页置顶文章(点我)有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶…

2026/9/18 23:19:50 阅读更多 →
转发(Forward)和重定向(Redirect)的区别

转发(Forward)和重定向(Redirect)的区别

转发是服务器行为,重定向是客户端行为。 转发(Forward) 通过RequestDispatcher对象的forward(HttpServletRequest request,HttpServletResponse response)方法实现的。RequestDispatcher可以通过HttpServletRequest 的…

2026/9/18 23:19:50 阅读更多 →
斐波那契查找出现的问题及解决方法

斐波那契查找出现的问题及解决方法

先看看斐波那契查找方法 斐波那契数列 1 1 2 3 5 8 13 21 … 斐波那契数列 的前一项f[k-1]/f[k] 随着k越来越大,这个值逐渐趋近黄金分割点0.618 如果查找的数据长度等于斐波那契数列的某一项数。则可以直接进行查找,否则 就需要将查找目标数组进行扩列…

2026/9/15 10:47:34 阅读更多 →

最新新闻

PixiJS v8 多环境适配实战:DOMAdapter、Web Worker、OffscreenCanvas 与严格 CSP 环境部署指南

PixiJS v8 多环境适配实战:DOMAdapter、Web Worker、OffscreenCanvas 与严格 CSP 环境部署指南

PixiJS v8 多环境适配实战:DOMAdapter、Web Worker、OffscreenCanvas 与严格 CSP 环境部署指南 【免费下载链接】pixijs The HTML5 Creation Engine: Create beautiful digital content with the fastest, most flexible 2D WebGL renderer. 项目地址: https://gi…

2026/9/18 23:19:07 阅读更多 →
PaddleOCR 场景文本识别算法 CPPD 完全指南:Context Perception Parallel Decoder 的原理、训练、评估与部署

PaddleOCR 场景文本识别算法 CPPD 完全指南:Context Perception Parallel Decoder 的原理、训练、评估与部署

PaddleOCR 场景文本识别算法 CPPD 完全指南:Context Perception Parallel Decoder 的原理、训练、评估与部署 【免费下载链接】PaddleOCR 飞桨多语言OCR工具包(实用超轻量OCR系统,支持80种语言识别,提供数据标注与合成工具&#x…

2026/9/18 23:19:07 阅读更多 →
Practice 65 键盘移植解析:QMK 数据驱动配置与 Blue Pill STM32F103C8T6 实战指南

Practice 65 键盘移植解析:QMK 数据驱动配置与 Blue Pill STM32F103C8T6 实战指南

Practice 65 键盘移植解析:QMK 数据驱动配置与 Blue Pill STM32F103C8T6 实战指南 【免费下载链接】qmk_firmware Open-source keyboard firmware for Atmel AVR and Arm USB families 项目地址: https://gitcode.com/GitHub_Trending/qm/qmk_firmware 导读 …

2026/9/18 23:19:07 阅读更多 →
TiXL 安装完整性验证与安全启动:从「打地鼠式补丁」到集中式安装校验方案

TiXL 安装完整性验证与安全启动:从「打地鼠式补丁」到集中式安装校验方案

TiXL 安装完整性验证与安全启动:从「打地鼠式补丁」到集中式安装校验方案 【免费下载链接】t3 TiXL is an open source software to create realtime motion graphics. 项目地址: https://gitcode.com/GitHub_Trending/t3/t3 TiXL(开源实时动态图…

2026/9/18 23:19:07 阅读更多 →
DataHub Looker 接入实战:用法统计(Usage Statistics)、能力边界与故障排查

DataHub Looker 接入实战:用法统计(Usage Statistics)、能力边界与故障排查

DataHub Looker 接入实战:用法统计(Usage Statistics)、能力边界与故障排查 【免费下载链接】datahub The Context Platform for your Data and AI Stack 项目地址: https://gitcode.com/GitHub_Trending/da/datahub DataHub 的 looke…

2026/9/18 23:19:07 阅读更多 →
Unity Addressables构建全解析:原理、实操与优化指南

Unity Addressables构建全解析:原理、实操与优化指南

做Unity项目做久了,资源这块迟早会撞上Addressables。不少朋友在群里问,说照着官方文档看完前面几章,加载、卸载、依赖管理都跑通了,结果卡在最后一步构建上,出包量大、加载卡顿、ab包文件对不上,甚至构建一…

2026/9/18 23:18:06 阅读更多 →

日新闻

Matlab手写逻辑回归:从数学原理到多变量概率预测模型实现

Matlab手写逻辑回归:从数学原理到多变量概率预测模型实现

很多朋友第一次看到"逻辑回归"这四个字,第一反应就是——这玩意儿是个回归模型吧?我当年也是在Matlab里跑完一段代码,看着输出的0.73、0.86这种概率值,才回过神来:这家伙其实是披着回归外衣的分类神器&#…

2026/9/18 0:00:28 阅读更多 →
高值医用耗材研报PDF:用Python完成字段抽取、清洗与趋势预测

高值医用耗材研报PDF:用Python完成字段抽取、清洗与趋势预测

简介:这份报告是2023-2028年高值医用耗材行业调研及发展前景趋势预测报告,面向医疗器械企业管理者、投资机构、行业研究人员及关注政策变化的从业者,用于把握行业监管动向、市场格局与未来趋势。报告以PDF格式呈现,共1个文件、整体…

2026/9/18 0:00:28 阅读更多 →
三维高斯场赋能世界模型:几何语义蒸馏与机器人决策实战

三维高斯场赋能世界模型:几何语义蒸馏与机器人决策实战

先把我自己的背景交代一下:我之前在搞具身智能和机器人导航相关的项目,很长一段时间里都被“环境表示”这件事卡着。传统做法是用点云或者网格做几何建模,语义信息另外再跑分割模型,两套东西各管各的,时间一长就会发现…

2026/9/18 0:00:28 阅读更多 →

周新闻

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验 【免费下载链接】ai The AI Toolkit for TypeScript. From the creators of Next.js, the AI SDK is a free open-source library for building AI-powered applications and ag…

2026/9/16 19:03:19 阅读更多 →
Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化 【免费下载链接】refine A React Framework for building internal tools, admin panels, dashboards & B2B apps with unmatched flexibility. 项目地址: https://gitcode.com/GitH…

2026/9/17 7:57:36 阅读更多 →
Flutter应用改名全指南:从Android到iOS的配置与工具实践

Flutter应用改名全指南:从Android到iOS的配置与工具实践

刚接一个外包项目时,甲方要求把工程里临时用的应用名改成正式产品名。我本来觉得“改名”这种小事,打开配置文件改一行不就完了?结果真动手才发现,Flutter项目里“应用名称”根本不是一处配置,而是一整套散落在 Androi…

2026/9/17 10:19:14 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/16 22:31:27 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/15 21:39:18 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/16 22:32:59 阅读更多 →