计算几何(板子整理)

【计算几何全家桶】计算几何二维板子套路详解 title : 计算几何(二维) tags : ACM,数学,计算几何 date : 2021-10-23 author : Linno 向量 点乘与叉乘 叉乘一般用于求面积或者判断两点的相对位置:(x1,y1)×(x2,y2)=x1*y2-x2*y1; 点乘一般用于判断直线是否正交:(x1,y1)·(x2,y2)=x1*x2+y1*y2; inline double Len(Vt a){return sqrt(Dot(a,a));}//模长 inline Vt operator +(Vt a,Vt . 阅读详情

心得

怎么感觉计算几何一直都在整理最基础的板子

Point板子

来自jiangly代码

包含Point的+-*,点积dot,叉积cross

#include <bits/stdc++.h>

using i64 = long long;
using T = long long;

struct Point {
    T x;
    T y;
    Point(T x = 0, T y = 0) : x(x), y(y) {}
    
    Point &operator+=(const Point &p) {
        x += p.x, y += p.y;
        return *this;
    }
    Point &operator-=(const Point &p) {
        x -= p.x, y -= p.y;
        return *this;
    }
    Point &operator*=(const T &v) {
        x *= v, y *= v;
        return *this;
    }
    friend Point operator-(const Point &p) {
        return Point(-p.x, -p.y);
    }
    friend Point operator+(Point lhs, const Point &rhs) {
        return lhs += rhs;
    }
    friend Point operator-(Point lhs, const Point &rhs) {
        return lhs -= rhs;
    }
    friend Point operator*(Point lhs, const T &rhs) {
        return lhs *= rhs;
    }
};

T dot(const Point &a, const Point &b) {
    return a.x * b.x + a.y * b.y;
}

T cross(const Point &a, const Point &b) {
    return a.x * b.y - a.y * b.x;
}

圆的交面积

先判断圆心d和r1、r2的距离,确定外离、内含、相交

外离交面积为0,内含交面积为小面积,

相交时,面积为两个小扇形面积减r1r1r2r2围成的四边形面积,

而扇形面积=弧度*r*r,扇形角用余弦定理acos确认的角大小,

四边形面积可以用1/2sinA*bc,这里因为已知三边长,用的海伦公式

typedef double db;
struct cir{
    db x,y,r;
    void read(){
        scanf("%lf%lf%lf",&x,&y,&r);
    }
}e[N];
db sq(db x){return x*x;}
db cal(cir a,cir b){
    db sql=sq(a.x-b.x)+sq(a.y-b.y);
    if(sql>=sq(a.r+b.r))return 0;
    if(sql<=sq(a.r-b.r)){
        if(a.r<b.r)return pi*a.r*a.r;
        else return pi*b.r*b.r;
    }
    db l=sqrt(sql),sqa=sq(a.r),sqb=sq(b.r);
    db p=(l+a.r+b.r)/2.0;
    db v=2.0*sqrt(p*(p-l)*(p-a.r)*(p-b.r));
    return acos((sqa+sql-sqb)/(2.0*a.r*l))*sqa+acos((sqb+sql-sqa)/(2.0*b.r*l))*sqb-v;
}

ACM计算几何基础模板,杭电老学长精心整理.pdf 包含点、线、多边形、凸多边形、圆、半平面交等算法的板子 立即下载

相关推荐

吉如一几何板子

2018 world final 金牌 吉老师几何板子 struct point{ db x,y; point operator + (const point &k1;) const{return (point){k1.x+x,k1.y+y};} point operator - (const point &k1;) const{return (point){x-k1.x,y-k1.y};} point operator * (db k1) const{return (point){x*k1,y*k1};} point operator / (db k1) const{return (point){x/k1,y/k1};} int operator == (const point &k1;) const{return cmp(x,k1.x)==0&&cmp;(y,k1.y)==0;} point turn(db k1){return (point){x*cos(k1)-y*sin(k1),x*sin(k1)+y*cos(k1)};} point turn90(){return (point){-y,x};} bool operator < (const point k1) const{ int a=cmp(x,k1.x); if (a==-1) return 1; else if (a==1) return 0; else return cmp(y,k1.y)==-1; } db abs(){return sqrt(x*x+y*y);} db abs2(){return x*x+y*y;} db dis(point k1){return ((*this)-k1).abs();} point unit(){db w=abs(); return (point){x/w,y/w};} void scan(){double k1,k2; scanf("%lf%lf",&k1;,&k2;); x=k1; y=k2;} void print(){printf("%.11lf %.11lf\n",x,y);} db getw(){return atan2(y,x);} point getdel(){if (sign(x)==-1||(sign(x)==0&&sign;(y)==-1)) return (*this)*(-1); else return (*this);} int getP() const{return sign(y)==1||(sign(y)==0&&sign;(x)==-1);} };

ACM数论板子

推荐博客: [总结]数论和组合计数类数学相关(定理&证明&板子) [总结]其他杂项数学相关(定理&证明&板子) 总结]多项式类数学相关(定理&证明&板子) [探究] OI中各种初级数论算法相关 板子: gcdgcdgcd int gcd(int a, int b) { return b == 0 ? a : gcd(b, a%b); } ...

xiji333的博客 1380

[转贴]计算几何(附:计算几何函数库)

计算几何函数库 博文链接:https://sysu-zeh.iteye.com/blog/119221

计算几何板子

两球体积交 const double pi = acos(-1); typedef struct { double x, y, z, r; }Point; Point a[5]; //两点之间距离 double dis(Point p, Point q) { double ans = sqrt((p.x - q.x)*(p.x - q.x) + (p.y - q.y)*(p.y - q.y) + (p.z - q.z)*(p.z - q.z)); return ans; }

Artist's Garden 242

ACM计算几何模板

ACM计算几何模板,74页,包括几何公式,几何图形,三维几何等等。

运算放大器 VS 仪表放大器

运算放大器(Operational Amplifier, 简称 Op Amp)和仪表放大器(Instrumentation Amplifier, 简称INA)在电子电路设计中都有非常广泛的应用,但两者在结构、特性以及应用场景上都有明显的区别。以下是它们之间主要的差异:运算放大器(Op Amp)仪表放大器(INA)运算放大器仪表放大器运算放大器仪表放大器运算放大器仪表放大器运算放大器仪表放大器总之,运算放大器是通用型放大元件,需要设计者自己做额外的电路配置;而仪表放大器则是针对高精度测量差分信号而生,内部匹配

chinahongjiang的博客 1346

计算几何板子(from 刘汝佳蓝书)

/************************************** * Au: Hany01 * Date: Feb 8th, 2018 * Prob: Geometry Template * Email: hany01@foxmail.com **************************************/ #include&amp;lt;bits/stdc++.h&amp;...

დ♂Hany01's Blog Space♂ღ 457

使用STM输出互补SPWM波(三相各差120°)

使用STM32输出SPWM波形(三相各差120°)

hello011102的博客 7373

计算几何模板(0):序

写在前面: 被THUSC的d2t3虐了之后决定开始好好搞计算几何。 (分割线) 计算几何第(0)章。 鸽子博主要开始更计算几何板子总结了! 大体学了一遍之后感觉板子还是比较无脑的,来学的话不要想的太难。 不知道会更多少章,也不知道要更(gu)多久, 总之会(咕咕咕地)更完的。 有什么意见或问题就提出来吧,只要我还在园子里都会回的(如果我会的话)。 转载于...

weixin_30650039的博客 68

从机械臂示教到厨房做饭:ACT模仿学习如何让机器人更“人性化”?

本文探讨了ACT(Action Chunking with Transformers)模仿学习技术如何让机器人更“人性化”,特别是在厨房等复杂场景中的应用。通过动作分块(Action Chunking)和时态融合(Temporal Ensemble)技术,机器人能够像人类一样记忆和执行复杂任务,如烹饪。文章还分析了ACT在家庭场景中的落地挑战及其在康复医疗、柔性制造等领域的跨领域应用潜力。

weixin_30613343的博客 255

dify案例-基于Dify打造智能合同审查助手:零代码搭建工作流全指南

Dify的工作流(Workflow)功能是一个可视化流程编排工具,允许用户通过拖拽节点的方式构建复杂的AI应用。与简单的问答应用不同,工作流支持多步骤任务处理、条件分支、并行执行等高级功能,非常适合合同审查这类结构化任务。可视化编排:无需编写代码,通过拖拽连接节点即可构建复杂流程多模型协作:可在不同节点使用最适合的AI模型灵活集成:支持知识库检索、条件判断、API调用等多种节点类型迭代优化:可随时测试和调整单个节点,不影响整体流程可视化搭建:无需编码经验,拖拽式构建复杂审查流程灵活扩展。

weixin_44245188的博客 1939

ACM竞赛板子

文章目录数学欧拉筛(线性筛) 自己的板子积累,不断更新中 数学 欧拉筛(线性筛) 时间复杂度O(n) void prime(int n) { for(int i=2; i<=n; i++) { if(!st[i]) p[ans++]=i; for(int j=0; p[j]<=n/i; j++) { st[p[j]*i]=1; if(i%p[j]==0) break; } } } ......

qq_45769627的博客 3291

【社招算法经验贴】算法社招记录

总的来说,也是收获了七七八八的offer,给的涨幅40~100%,职级有的可以对标到 p7(但阿里p7是真难a,a不动)。面了一圈下来,感觉大模型也在收缩hc。尤其是多模态相关hc。凭着上学期间做过相关视觉的work和paper,社招虽然能进面试,但是hc少得可怜,多模态已死慎入。还有大模型应用算法给的涨幅,跟搜广推的涨幅差别不大。真正能几百万往上的是基座pretrain/后训练/infra,但是全靠social和conn,hc极少。

Danger的博客 977

计算几何基础知识学习整理

今天终于开始接触了一下计算几何。。这里很多基础题都有板子。。先简单介绍一下计算几何基础概念和知识: 矢量加减法:设二维矢量P = ( x1, y1 ),Q = ( x2 , y2 ),则矢量加法定义为: P + Q = ( x1 + x2 , y1 + y2 ), 同样的,矢量减法定义为: P - Q = ( x1 - x2 , y1 - y2 )。 显然有性质 P + Q = Q + P,...

qq_40924940的博客 659

AI Agent开发第85课-DeepSeek-OCR 安装全指南:从 Transformers 到 vLLM,手把手教你跑通企业级 OCR

本文系统讲解 DeepSeek-OCR 的两种部署方式——基于 Hugging Face Transformers 的标准推理与基于 vLLM 的高性能加速推理。详细说明 CUDA 与 PyTorch 版本匹配、环境验证、依赖安装等关键细节,并提供可直接运行的完整代码示例。无论你是单卡调试还是高并发服务部署,都能在这里找到清晰路径。

打造全国最全的AI Agent开发知识领域的博客 2542

GEE 案例:基于陆地卫星8号(大气层顶反射率数据)LANDSAT/LC08/C02/T1_TOA的生态遥感指数RSEI计算、可视化和下载

摘要:基于GEE的遥感生态指数(RSEI)计算方法 本文介绍了利用Google Earth Engine(GEE)平台计算遥感生态指数(RSEI)的全流程方法。主要内容包括:研究区域定义、Landsat8数据获取与去云预处理、关键生态指标计算(地表温度LST、植被指数NDVI、湿度指数WET和建筑指数NDBSI)、主成分分析(PCA)降维处理,以及结果可视化与数据导出。通过结合多源遥感指标并采用归一化处理,构建了综合反映区域生态环境质量的RSEI指数。该方法为生态环境监测提供了高效的技术方案,所有计算过程均

此星光明博客 445

计算几何——关于凸包

关于凸包

TS & c++ 627

COMSOL介电弹性体数值仿真指南:预拉伸圆形DEA的稳态变形分析(II)

本期博客是《COMSOL介电弹性体数值仿真指南》系列博客中的一期。聚焦于介电弹性体驱动器(DEA)中最为经典的预拉伸圆形DEA驱动器构型,对其在COMSOL平台中的具体建模步骤进行介绍与讨论。

忘了面孔的Batou 353

计算几何基础

挺不错的入门基础 进阶版 计算几何基础干货全家桶 基础预备 1.计算误差 尽量少用三角函数、除法、开方、求幂、取对数运算 尽量把公式整理成使用的以上操作最少的形式 在不溢出的情况下将除式比较转化为乘式比较:ab>c⇒a>bc (b>0)\frac{a}{b}>c \Rightarrow a > bc \ (b > 0)ba​>c⇒a>bc (b>0) 在使用除法、开根号、和三角函数的时候,我们要考虑由浮点误差运算产生的代价,例如在开

cosx_的博客 401

USB 3.1 协议规范 最新版

USB 3.1 协议规范 最新英文版, 2013-07-26版 做这一行的最需要,用的到的可以参考

labview 16进制字符串强制转换为10进制字符串

本VI实现16进制字符串强制转换为10进制字符串,即输入16进制的03DF本VI可以输出10进制的03DF,如果需要区分大小写,请自行添加强制转换为大写或小写

2019 CCPC Wannafly Camp day5

自闭感受 参加Camp第五天,今天是dls的计算几何专场,可是说是几何板子讲解,也是这几天听得最明白,学得最多的一天。dls从基础的点积叉积到线到圆等,感觉非常Nice,相对dls说。 下午依旧是训练赛,比昨天感觉好不少,真的是越来越亲民了,还以为今天要爆零自闭呢。同时经过今天的计算几何,感觉自己整理一套计算几何板子真的非常有必要,结束后也该操手了。 上题解 A - Cactus Draw 把...

Anoyer的博客 581

BSBL_BO.zip_BSBL_BSBL算法_信号重构_压缩感知_压缩感知重构

BSBL 重构算法,可以在压缩感知信号处理之后重构出原始信号

kuangbin专题十三基础计算几何总结

感觉做完没什么进步,不会做的题就去搜题解,没过的题就去找数据。。。下次不能这样! 计算几何我觉得一靠板子,二靠细节。我会在另一篇博客整理出比较好的板子。细节得要自己培养培养,总不能总看网上的数据来过题呀。 C - Segments 题目大意:给出n条线段两个端点的坐标,问所有线段投影到一条直线上,如果这些所有投影至少相交于一点就输出Yes!,否则输出No!。 解题思路:如果有存在这样的直线...

qq_34921856的博客 645

带标注的液体泄漏热成像数据集,识别率96%,2774张图,支持yolo,coco json,voc xml,文末有模型训练代码

预览数据集中的图片,标注信息,训练模型代码可点击查看我的博客链接:https://blog.youkuaiyun.com/pbymw8iwm/article/details/162275981 数据集使用方法和模型训练相关技术问题可免费咨询,主页获取作者联系方式

日常算法刷题整理

日常算法刷题整理 一、字符串处理 二、数学 三、数据结构 1、区间问题 1.1、树状数组 板子: #include<iostream> #include<vector> #define type int using namespace std; // n:元素个数,m:操作次数 int n, m; vector<type> a, c; // a是原数组,c是树状数组 int lowbit(int x) { return x&(-x); } void

一个小渣渣的博客:) 265

凸包&凸包构建最优直线求点最大值(板子整理)

凸包&凸包求最优直线板子整理

小衣同学的博客 682

计算几何学习5

今天算是把半平面交的nlogn版本搞出来了 也做了一些半平面交的经典题 最重要的是感受到了 计算几何的精度的深深的恶意 nlogn的做法 和凸包类似 维护一个直线的双端队列 极角排序后每次加入一条直线都从队首队尾弹出无效直线 在加入时和队尾直线产生交点 最后队首队尾产生交点 中间还有当队尾两直线向量共线时的问题需要处理一下 总感觉 n^2的做法虽然慢 但是精度似乎比nlogn的要靠谱 计算几何很...

weixin_43133015的博客 53

未整理算法的总结

贪心法: 排序不等式: 给定两个等长的乱序数列,对应位做乘积,问怎样才能获得最大乘积累加和 这是一道算法导论上的题,我记得当时通过取对什么的奇葩操作证明出来了,贪心的方法就是两个数列都从小到大排序就好了 拟阵上的最大独立集问题: 算法导论重点讲的一个东西,有点儿类似于最小生成树的贪心思想(Kruskal),其实最小生成树的贪心思想就是这个 首先证明是拟阵,然后求最大独立集就可以了,求的...

weixin_30378311的博客 178
上一篇: Codeforces Round #850 (Div. 1, based on VK Cup 2022 - Final Round) B.Letter Exchange(思维题 置换三元环 补写法)
下一篇: 动态开点李超树(例题+板子总结)
小衣同学
博客等级 码龄9年 1444粉丝 995原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小衣同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值