2019银川网络赛 Rolling The Polygon 简单的计算几何

发布时间:2026/7/28 17:57:58

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)

2026/7/28 17:57:58

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

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

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

2026/7/28 17:57:58

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

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

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

2026/7/28 17:57:58

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

NLP自然语言处理:Trasformer详解 - 论文《Attention is All You Need》总结

NLP自然语言处理:Trasformer详解 - 论文《Attention is All You Need》总结

2026/7/28 18:47:59

论文《Attention is All You Need》地址:https://arxiv.org/abs/1706.03762 英文原版Trasformer详解:https://jalammar.github.io/illustrated-transformer/ 在本文中,将试图把模型简化一点,并逐一介绍里面的核心概念,希望让普通读者也能轻易理解。 目录 一、宏观理解T…

健身俱乐部网站开发全栈技术解析与实践

健身俱乐部网站开发全栈技术解析与实践

2026/7/28 18:47:59

1. 健身俱乐部网站项目概述这个健身俱乐部网站项目是一个典型的服务行业数字化解决方案,主要面向中小型健身场馆的线上运营需求。作为一个完整的网站开发案例,它包含了前端展示、会员管理、课程预约等核心功能模块,配套的文档和源码为开发者提…

三步搞定Data-Juicer:如何轻松构建AI大模型的数据处理流水线

三步搞定Data-Juicer:如何轻松构建AI大模型的数据处理流水线

2026/7/28 18:47:59

三步搞定Data-Juicer:如何轻松构建AI大模型的数据处理流水线 【免费下载链接】data-juicer Data processing for and with foundation models! 🍎 🍋 🌽 ➡️ ➡️🍸 🍹 🍷 项目地址: https:/…

Excelize v2.10.1版本性能优化与图表功能详解

Excelize v2.10.1版本性能优化与图表功能详解

2026/7/28 18:47:59

1. Excelize v2.10.1版本深度解析作为Go语言生态中最受欢迎的Excel文档处理库,Excelize在v2.10.1版本中带来了多项重量级更新。这个版本不仅在性能上实现了质的飞跃,更在图表功能、API设计等细节处做了大量优化。作为一个长期使用该库处理企业级报表系统…

OpenSees钢筋混凝土柱非线性分析与建模指南

OpenSees钢筋混凝土柱非线性分析与建模指南

2026/7/28 18:47:59

1. OpenSees平台与钢筋混凝土柱分析概述OpenSees作为一款开源的有限元分析框架,在结构工程领域已经发展了二十余年。我第一次接触这个工具是在2013年做硕士课题时,当时就被它强大的非线性分析能力所震撼。对于钢筋混凝土柱这类常见结构构件,O…

FireBeetle USB KB/MS Shield:串口转USB HID的硬件自动化方案解析

FireBeetle USB KB/MS Shield:串口转USB HID的硬件自动化方案解析

2026/7/28 18:37:59

1. 项目概述:FireBeetle USB KB/MS Shield 是什么?如果你玩过Arduino或者ESP32,肯定对DFRobot的FireBeetle系列不陌生,它以低功耗和紧凑设计著称。但今天聊的不是主控板,而是一个能让你的FireBeetle瞬间变身成“键盘鼠…

[具身智能-649]:个人电脑搭建 RTSP 服务完整方案(Windows / Ubuntu 双平台,适配 RDK X5 rtsp2display 调试)

[具身智能-649]:个人电脑搭建 RTSP 服务完整方案(Windows / Ubuntu 双平台,适配 RDK X5 rtsp2display 调试)

2026/7/28 13:30:18

目标:电脑作为RTSP 服务端,循环推送 H264/H265 视频流; RDK X5 通过 rtsp2display 拉流预览,完全不需要在开发板编译 live555。 提供两套成熟方案: ✅ 方案 A:FFmpeg(最简单,优先推…

PDF合并与动态水印的工程化方案:2026国内免费工具实测对比

PDF合并与动态水印的工程化方案:2026国内免费工具实测对比

2026/7/28 16:04:36

一、背景与测试方案 在实际项目交付中,PDF文件合并与版权保护水印的叠加是一个高频但容易被低估的技术需求。典型的处理链路涉及:多源PDF的文件流合并、页面级水印渲染(含透明度混合与图层叠加)、输出文件体积控制。看似简单的操作…

PDF拆分压完图糊了?2026国内免费实测,档案员都在用的组合方案

PDF拆分压完图糊了?2026国内免费实测,档案员都在用的组合方案

2026/7/28 16:04:35

说实话,提到PDF拆分再压缩,我真是被折腾得够呛。 上个月公司年度合同归档,一份300多页的PDF总合同,需要按年份拆分成三个独立文件,再分别压缩到10MB以内方便邮件发送各部门确认。我心想这还不简单?先找个海…

零基础搭建桌面智能体,OpenClaw 2.7.9 分步实操,避开绝大多数部署陷阱

零基础搭建桌面智能体,OpenClaw 2.7.9 分步实操,避开绝大多数部署陷阱

2026/7/28 0:06:55

📌 一、工具核心优势盘点 数据本地存储,安全系数高所有操作日志、文档资料均保存在本机,不会上传至云端,能够有效保护企业文件与个人隐私,规避数据泄露风险。 上手简单,零编程门槛采用全图形化可视化界面&…

计算机毕业设计之基于springboot的购物平台设计与实现

计算机毕业设计之基于springboot的购物平台设计与实现

2026/7/28 0:06:55

由于移动应用技术的持续性的快速发展,现实生活中人们大多数都是通过移动手机、电脑等智能设备来完成生活中的事务。因此,许多的人工传统行业也开始与互联网结合,不再一味的依靠人工手动,努力打造半自动数字化甚至是全自动数字化模…

豆包AI绘图提示词失效真相:NLP模型层token截断机制首次披露,3招绕过字数限制

豆包AI绘图提示词失效真相:NLP模型层token截断机制首次披露,3招绕过字数限制

2026/7/28 0:06:55

更多请点击: https://codechina.net 第一章:豆包AI绘图提示词失效现象全景扫描 近期大量用户反馈,豆包(Doubao)AI绘图功能对常规提示词(Prompt)响应异常:语义明确的指令被忽略、中英…