首页 > 其他分享 >计算几何训练笔记

计算几何训练笔记

时间:2023-09-08 15:02:27浏览次数:33  
标签:cnt 训练 point -- 笔记 int && 几何 凸壳

Luogu1452 旋转卡壳,注意判一下平行的情况,另外有个比较简介的求凸包方法,就不用分别求上凸壳和下凸壳再合起来了:

int is(point a,point b){return a.x==b.x?a.y<b.y:a.x<b.x;}
#define pd(A,B,C) (cross((C-B),(B-A))>0||(cross((C-B),(B-A))==0&&is(A,B)==is(B,C)))

sort(p+1,p+n+1,is);
int cnt=0,i;
for(i=1;i<=n;all[++cnt]=i++) while(cnt>1&&pd(p[all[cnt-1]],p[all[cnt]],p[i])) --cnt;
for(i=n-1;i;all[++cnt]=i--) while(cnt>1&&pd(p[all[cnt-1]],p[all[cnt]],p[i])) --cnt;--cnt;

all 存的就是凸包点的编号

然后旋转卡壳注意可以用面积判断点离线段距离的长短,然后每次统计答案需要 \(j\) 和 \(j+1\) 的两个点都需要更新答案。

标签:cnt,训练,point,--,笔记,int,&&,几何,凸壳
From: https://www.cnblogs.com/SkyRainWind/p/17687600.html

相关文章

  • 2023牛客暑期多校训练营4
    A.BoboStringConstruction题意:给定一个01串t,构造一个长度为n的01串s,时的t+s+t中t只在首和尾出现。分析:结论,s取全0或者全1。①假设t全0或者全1,那我s和t取相反的即可。②假设t既包含0又包含1,首先t不可能是s的子串,那我们只需考虑t是否可以由t的后缀加上s再加上t的前缀得......
  • heijin_linux驱动笔记
    驱动程序的作用:1)向linux内核注册/注销设备号,创建/删除设备节点文件(这个操作可以分离出来),供应用程序调用。(设备节点文件中的设备号要与驱动程序申请注册的设备号一致)2)将物理地址转为虚拟地址进行设备操作,将应用程序的文件调用转为对自定义的驱动函数调用;驱动的创建:配置环境变量(......
  • 焱融科技助力智谱AI,打造大模型训练加速之道
    自ChatGPT爆火以来,中国的AI产业已经进入名副其实的“百模大战”。《中国人工智能大模型地图研究报告》显示,截至2023年5月底,国内10亿级参数规模以上基础大模型至少已经发布79个,大模型所需数据丰富,而海量数据需要强悍的储存性能。智谱AI致力于打造新一代认知智能通用模......
  • 代码随想录算法训练营第二天| 977.有序数组的平方,209.长度最小的子数列,59.螺旋矩阵Ⅱ
    977.有序数组的平方双指针法因为负数平方后也会变大,所以较大的平方值只可能在靠近两端的位置,越往中间走平方值必定越小。所以,在原数组两端各定义一个指针,慢慢往中间走,然后把平方值按顺序放到新数组里即可。classSolution{public:vector<int>sortedSquares(vector<i......
  • effective c++笔记
    一.截图1. public继承,No32,Pg155 2.不重定义继承而来的缺省参数值,No37,Pg183 ......
  • azure data studio SQL扩展插件开发笔记
    node.js环境下拉取脚手架npminstall-gyogenerator-azuredatastudioyoazuredatastudio改代码运行调试扩展,在visualstudiocode中安装插件即可然后visualstudiocode打开进行修改运行即可image.png运行后自动打开auzredatastudio了,下面是我开发的扩展,......
  • vscode插件开发笔记
    https://code.visualstudio.com/api/get-started/your-first-extensionnpminstall-gyogenerator-codeyocode正常开发选择ts或者js结果如下,package.json的contributes.commands节点控制命令生命,contributes.menus定义菜单extension.ts里面注册事件exportfunctionactivat......
  • 结构化文档开发笔记
    一些浅薄的见解有错误请指出1.结构化文档编写和发布的基本流程看了一些工具的文档,发现从编写xml到输出为pdf、html的步骤是固定的,从编写XML文件到输出为PDF文档的一般流程包括以下步骤:编写XML文件:根据需要的文档结构和内容,使用XML标记语言编写XML文件。XML文件应包含所需的数......
  • Go学习笔记3
    九、错误处理1.defer+recover机制处理异常错误展示错误:发现:程序中出现错误/恐慌以后,程序被中断,无法继续执行。错误处理/捕获机制:内置函数recover:2.自定义错误需要调用errors包下的New函数:函数返回error类型3.panic有一种情况:程序出现错误以后,后续代码就没有必要执......
  • 记录编写并训练测试经典数据集mnist
    importtensorflowastfmnist=tf.keras.datasets.mnist(x_train,y_train),(x_test,y_test)=mnist.load_data()x_train,x_test=x_train/255.0,x_test/255.0model=tf.keras.models.Sequential([tf.keras.layers.Flatten(input_shape=(28,28)),tf.......