【HNOI2003】多边形
【HNOI2003】多边形
【题目描述】
在一个多边形的展厅(不一定是凸多边形)内,一个警卫站在展厅中的某一些点,是可以看到展厅内所有地方的,而有些点则不行。比如下图中,站在A点或者B点,就不能看到展厅的某些地方,而站在C点,则可以看到展厅内的所有地方。
准确的说,站在图中阴影部分所示的任意一个点内,都可以看到展厅内的所有地方。
你的任务就是编写一个程序,计算阴影部分的面积。
【输入】
第一行是一个自然数N,表示多边形的顶点数。N不超过1500。之后N行每行两个整数(用空格分开),依次表示多边形的每个顶点的坐标。
【输出】
仅1行,是阴影部分的面积,保留2位小数。
【输入样例】
5
0 0
0 6
6 6
6 0
3 3
【输出样例】
9.00
【题解】
半平面交模板题,把多边形每一条边当成直线处理,然后做半平面交就好了。注意题中点是按照顺时针给出的,应该按照逆时针得到直线才保证直线左侧是半平面区域,稍微处理一下就好了。这道题目比较特殊,半平面交不会出现解无穷大的情况,所以可以放心大胆算面积。
本蒟蒻第一个点一直过不了OTL网上找到的代码似乎也交不过,所以特判了XD如果各位大神切了这个点,还求指点一下orz
【代码】
O(n^2)算法就可过,我写的O(nlogn)。
【HNOI2003】多边形相关推荐
- [学习笔记]半平面交
一个直线把平面分成两部分,就是两个半平面 处理这两个平面的交的信息,就是半平面交 推荐: 计算几何之半平面交算法模板及应用 bzoj 2618 半平面交模板+学习笔记 [总结]半平面交 可以用于求任意 ...
- Python+OpenCV 图像处理系列(3)—— 画线、矩形、画圆、画椭圆、画多边形
OpenCV 中的绘图函数 使用 OpenCV 绘制不同几何图形,其中包括的函数有 cv2.line() cv2.circle() cv2.rectangle() cv2.ellipse() cv2. ...
- 绘制多边形_XDGE_RayMarchine 1- 利用Frag Shader绘制图形
转载于小道的博客园 XDGE_RayMarchine 1- 利用Frag Shader绘制图形www.cnblogs.com # Render/RayMarchine/Base 1- 利用Frag绘 ...
- matlab 填充 多边形,algorithm – 如何在MATLAB中从无序边数据创建填充多边形?
如果多边形为 convex,则可以使用函数 CONVHULL从顶点计算凸包,并使用绘图函数 PATCH绘制多边形.例如: x = [0 1 0 1]; %# Unordered x coordinat ...
- 《OpenCV3编程入门》学习笔记8 图像轮廓与图像分割修复(三)使用多边形将轮廓包围
8.3 使用多边形将轮廓包围 8.3.1 将轮廓包围的多边形函数 1.返回外部边界:boundingRect()函数 (1)作用:返回指定点集最外面的边界矩形(四个顶点) (2)函数原型:Rect b ...
- 使用Python,OpenCV进行涂鸦(绘制文字、线、圆、矩形、椭圆、多边形轮廓、多边形填充、箭头~)
使用Python,OpenCV进行涂鸦(绘制文字.线.圆.矩形.椭圆.多边形轮廓.多边形填充.箭头) 1. 效果图 2. 原理 2.1 绘制线:cv2.line(canvas, (300, 0), ( ...
- Blender从头到尾创建低多边形角色学习教程 Low Poly Characters – Blender Bitesize Course
从头到尾创建低多边形角色. 你会学到: Blender界面的基础. 基本建模技术. 如何遵循字符引用? 如何创造和塑造自己的角色(不同风格.发型和服装). 纹理字符. 索具和动画介绍(用于你的游戏引擎 ...
- 在Blender中创建惊人的低多边形动画
大小解压后:13.5G 持续时间10小时+ 包括项目文件 1920X1080 MP4 语言:英语+中英文字幕(根据原英文字幕机译更准确) 标题:CGBoost学院–立方体世界在Blender中创建惊人 ...
- Blender从头开始装配和动画制作低多边形风格的FPS手臂
Rigging and Animating Low Poly FPS Arms in Blender MP4 |视频:h264,1280×720 |音频:AAC,44.1 KHz,2 Ch 语言:英语 ...
最新文章
- MR-CNN网络结构
- Gartner:2019十大战略技术趋势
- PHP无法加载curl扩展
- 禁用software reporter tool.exe 解决CPU高占用率的问题
- codeforces1494 D. Dogeforces(构造)
- 基于Matlab的同态滤波彩色图像增强算法研究
- 【LEACH协议】基于matlab粒子群算法改进LEACH协议【含Matlab源码 2052期】
- Unity中世界坐标与相对于某个物体的相对坐标的转换
- 关于Oppen Live Writer中插入可折叠着色代码的插件
- Unity3D新手入门教程_游戏开发100集课程 (含粒子
- 弹性布局和AndroidAutoSize屏幕适配
- 2021年N1叉车司机找解析及N1叉车司机考试总结
- Oracle数据库:oracle外连接left/right/full outer join on,oracle扩展的左右外连接展示符号(+)
- win10 共享热点
- VIRTIO 前后端驱动中 GPA,HVA 转换原理
- 空指针异常(NullPointerException)
- ASP.NET profile之 找不到存储过程dbo.aspnet_CheckSchemaVersion
- 在家带娃有没有什么副业可以做?在家带娃的副业有哪些?
- iOS和Android使用同一个二维码自动跳转不同下载页面链接(附生成二维码地址方法)
- Odoo 8.0深入浅出开发教程(十) 附录
热门文章
- Cannot read property ‘$message‘ of undefined
- uniapp小程序一键连接wifi
- QT二进制流方式读写文件
- php 统计 字数,PHP 仿 Word 统计文章字数
- R语言survival包Surv函数创建生存对象、建立Cox回归模型(包含所有协变量)比较不同治疗方法生存率的差异、drop1函数计算cox回归模型自变量似然比检验值、删除冗余变量重新构建cox模型
- ne_comment 表
- 百分点认知智能实验室出品:智能问答中的对抗攻击及防御策略
- 递归,根据部门id获取部门树下的某个部门名称
- 年月日时的天干推算方法
- APM32F103 RTC内部时钟源秒中断例程测试