首页 > 其他分享 >【计算几何】(还未入门的)入门题做题总结

【计算几何】(还未入门的)入门题做题总结

时间:2023-10-05 22:02:27浏览次数:25  
标签:www 入门 luogu 做题 https 几何 三角形 com cn

开篇碎碎念

马上就要正式迎接新的大一生活啦,学个计算几何助助兴bushi
感觉还算不上入门,但是做着玩啦
还不知不觉的完成了牛客的100AC

做题小总结

是按照洛谷用户分享题单:计算几何——从入门到跳楼 https://www.luogu.com.cn/training/16408来逐步完成的,现在已经完成基础part啦。总的来说这个题单还是有点好玩的(

那就看看都写了些什么题目叭

P1652 圆

  • 题目链接: https://www.luogu.com.cn/problem/P1652
  • 思路:可以画曲线,意味着可以把无关的圆都避开。那么题目就变成了,有多少个圆将这两个点分开(一个在里一个在外)。
  • KEY WORK:分别计算两点到圆心的距离,并与半径判断
  • 优化:用平方代替开根号,避免误差,减小计算量

P2181对角线

  • 题目链接:https://www.luogu.com.cn/problem/P2181
  • 思路:每个交点都与四个顶点有关,所以原题目就是从n个顶点里面选择四个顶点,简单的组合数公式就可以得到结果啦
  • 优化:边乘边除,将 n * (n-1) * (n-2) * (n-3) / 24 改成n * (n-1) / 2 * (n-2) / 3 * (n-3) / 4 。从而避免爆ll

P1257 平面上的最接近点对

P1142轰炸

  • 题目链接:https://www.luogu.com.cn/problem/P1142
  • 思路:本题要求的是一条直线最多能覆盖的最多的点数,过一个点,斜率一定的直线只有一条。所以固定一个点,看其他点和该固定点所连成的直线的斜率是多少,用map去存,找到斜率相同最多的条数
  • warning:map记得要清空

P2180 摆石子

  • 题目链接:https://www.luogu.com.cn/problem/P2180
  • 思路:感觉还是和计算几何没什么太大联系,通过实践发现,摆放成最多有一行不完整的矩形,可以围成的矩形个数最多。且nm的矩形最多可以构成 n(n-1)/2 *m *(m-1)/2个子矩形。 那么就暴力枚举看看每一行放多少个

P1355 神秘大三角

*题目链接:https://www.luogu.com.cn/problem/P1355
*思路:题面很干净清楚,就是判断一个点与一个给定三角形的位置关系。二维计算几何的基础题了,那么就分别判断几种情况:最好判断的是当这个点与顶点重合的时候:那么很显然就是判断坐标是否相同;对于判断是否在三角形边上,我是选择了判断这个点与其中两个顶点所连成的直线是否平行,还要特别判断一下是不是在延长线上;而对于三角形内外的话则是用的点积。
看了题解知道了一些新的东西:例如海伦公式:利用三角形的三条边的边长直接求三角形面积的公式:S=√p(p-a)(p-b)(p-c)。当该点与顶点构成的三个三角形里面,存在有一个面积为零,那么就在三角形边上或者定点上,这三个三角形的面积与大三角形面积相等,那么就在三角形内部,当构成的三角形面积大于原三角形时,在三角形外部。
除了海伦公式之外还有用叉积来计算的:

我们想到向量的叉积可以得到两个向量之间的有向面积,我们还知道向量叉积可以求出多边形的面积(就是把有向面积加一起啦),思考求多边形面积的原理,可以想到通过判断有向面积的正负来判断点是否在三角形内。
我们发现,如果点在三角形边上,那么一定会有某一个向量叉积答案为0,我们可以通过判断向量叉积是否为零来判断是否有点在边上。
注意:
我们知道,当向量夹角小于0的时候,叉积是负的。因此当所有的有向面积同正或同负时,点都在三角形内部。
其实,如果点在边的同一直线上时,叉积也为零,我们可以通过点到线段两边的端点的两个向量是否同向来判断是否在线段上,这可以用向量的点积来判断。

P1325雷达安装

标签:www,入门,luogu,做题,https,几何,三角形,com,cn
From: https://www.cnblogs.com/muyi-meow/p/17743926.html

相关文章

  • ChatGPT入门实战课 AI时代更具竞争力的开发者(完结)
    点击下载:ChatGPT入门实战课AI时代更具竞争力的开发者(完结)提取码:bx1lFlink是一款基于流处置的散布式计算框架,能够完成高性能、低延迟的实时数据处置和剖析。下面是一个示例代码,用于展现如何运用Flink从零开端构建实时风控系统。首先,我们需求在pom.xml文件中添加Flink的依......
  • vue3最基础入门,vue3 + element plus实战pc端后台管理,从零到一设计pc端项目
    教程地址 https://www.bilibili.com/video/BV1C3411s7bV 稳定、快速、免费的前端开源项目CDN加速服务,共收录了4387个前端开源项目https://www.bootcdn.cn/all/ Normalize.css使浏览器呈现所有HTML元素更加一致,并且符合现代web标准。Normalize.css只作用于需要......
  • gin上使用Grpc入门
    要在Go中使用基于Gin的gRPC,你需要执行以下步骤:安装gRPC:使用以下命令安装gRPC:goget-ugoogle.golang.org/grpcshell复制代码安装protoc-gen-go:使用以下命令安装protoc-gen-go插件,它用于将protocolbuffer文件生成Go代码:goget-ugithub.com/golang/protobuf/protoc......
  • 前端基础入门知识
    1.windows快捷键tab+alt切换窗口一直点tab会选择切换(主要)shift+小写状态下字母= 输出大写字母win+d快速切换到windows桌面 shift+crtl切换输入法  2.浏览器快捷键1.crtl+shift+c打开开发者模式(主要)f12也可以打开2.crtl+r强制刷新3.crtl......
  • Android入门教程 | UI布局之RelativeLayout 相对布局
    RelativeLayout简述RelativeLayout继承于android.widget.ViewGroup,按照子元素之间的位置关系完成布局,作为Android系统五大布局中最灵活也是最常用的一种布局方式,非常适合于一些比较复杂的界面设计。RelativeLayout和LinearLayout类似,都是ViewGroup,能“容纳”多个子view。R......
  • 0基础入门overleaf (latex)
    首先是官方文档,可以通过官方文档进行简单了解LearnLaTeXin30minutes-Overleaf,在线LaTeX编辑器Latex是一个编码式的排版工具,一切内容均通过  LaTeX命令 实现。在开头会对文章格式等内容进行设置,\documentclass{article}  %规定了文章类型\usepackage{...} ......
  • 2023.9-2023.10 做题记录
    好菜啊,被爆杀了/kk1.CF1572ABook模拟赛上看错题了!#$%!#&%^&#*2.CF348DTurtles类似Catalan数的推导3.CF1271DPortals贪心题。4.CF1545BAquaMoonandChess数数题。注意两个连续的1的移动即可。5.AT_agc007_b[AGC007B]ConstructSequences简单题。注意值......
  • 2.几何图形
    2.1绘制直线......
  • FreeRTOS入门教程(同步与互斥)
    (文章目录)前言前几篇文章一直在围绕FreeRTOS中的任务创建,删除,优先级,调度算法进行讲解,那么从本篇文章开始将围绕同步与互斥来展开讲解。一、同步与互斥概念当多个任务或线程共享资源并发执行时,同步和互斥是两个关键的概念。1.同步(Synchronization)是指协调多个任务或线程的执......
  • 【C语言入门】第四天
    【例题1】2325.解密消息-力扣(LeetCode)intisTrue(charc,charchs[26],intpos){inti;for(i=0;i<pos;i++){if(c==chs[i]){return0;}}return1;}charlookForChar(charc,charchs[26]){for(inti=0;i<26;......