求凸包-ACM-ICPC国际大学生程序设计竞赛北京赛区-北京大学
北京大学暑期课 《ACM/ICPC竞赛训练》
北京大学信息学院 郭炜
guo_wei@PKU.EDU.CN
/guoweio
fpku
课程网页:/summerschool/pku_acm_train.htm
北京大学
林舒/郭炜/杜宇飞
概述
基础——点、线、面
进阶—— 多边形、半平面
走近计算几何
计算几何 Computational Geometry
研究几何形体的计算机表示、分析与综合
“计算几何”——以计算为主的几何
地理
信息
数字 机器人
可视化 技术
辅助
设计
集成
图形学
电路
辅助 计算机
工程 视觉
题目比较长
图形抽象,需要良好的数学基础和空间想象
能力
有许多容易忽视的特殊情况,而且往往需要
单独处理,代码量大
需要考虑浮点运算时产生的精度误差
可以与其他类型的题目结合,从而更加复杂
常作为压轴题目出现在程序设计竞赛中
用矢量描述计算几何中的基本元素
沿用解析几何中的表示方法?
点 P(x,y,z)
线 x=a t+b ,y=a t+b ,z=a t+b
x x y y z z
面 ax+by+cz+d=0
表示简单
功能强大
特殊情况少,思维难度较低
函数可重复利用(即所谓的“模版”)
尽可能避免除法和三角函数,精度高,效率
高
class CVector {
double x, y;
};
表示从0点到 (x,y)的矢量。对矢量只关心方
向和长度,不关心(位置)起点终点
CVector operator +(CVector p, CVector q) {
return CVector(p.x + q.x, p.y + q.y);
}
用法:c = a + b; //a,b,c都是CVector对象
c
b
a
CVector operator -(CVector p, CVector q) {
return CVector(p.x - q.x, p.y - q.y);
}
用法:c = a - b; //a,b,c都是CVector对象
c
b
a
CVector operator *(double k, CVector p) {
return CVector(k * p.x, k * p.y);
}
用法:c = f * a; //a是CVector对象,f是double
C方向与a相同,|c| = f * |a|
您可能关注的文档
- 授课课程-东南大学教务处.DOC
- 掌握商业银行混业经营与分业经营的特点素质目标.PPT
- 掌握精子活力测定方法.PPT
- 探究三不等式性质的应用-QUICKBIDSapp.PPT
- 推行学生学业评价改革逐步建立多元学生学业评价体系建立过程性.DOC
- 提升阅读理解的阅读教学-南投国民教育辅导团.PPT
- 提出规划建设环南艺文化创意产业功能区.PPT
- 摩尔质量M=质量m物质的量n每摩尔单位.PPT
- 操作步骤发动机机油的检查.PPT
- 改变电阻箱阻值.PPT
- 山西天一大联考2025-2026学年高二上学期期末学情监测语文试题(试卷+解析).docx
- 山西忻州部分学校2025-2026学年高一上学期2月质量检测数学试题(人教B版)(试卷+解析).docx
- 山西运城市2025-2026学年高二第一学期期末调研测试数学试题(试卷+解析).docx
- 陕西省榆林市榆阳区2025-2026学年八年级上学期期末地理试题(试卷+解析).docx
- 陕西西安市碑林区2025-2026学年度第一学期期末八年级生物试题(试卷+解析).docx
- 四川省广元市苍溪县2025-2026年八年级上学期期末道德与法治试题(试卷+解析).docx
- 江苏泰州市姜堰区2025-2026学年七年级上学期1月期末数学试题(试卷+解析).docx
- 江苏省扬州市邗江区2025-2026学年九年级上学期期末考试化学试题(试卷+解析).docx
- 江西上饶市铅山县2025-2026学年第一学期期末考试八年级数学试题(试卷+解析).docx
- 江苏扬州市高邮市2025-2026学年度第一学期期末学业质量监测试题九年级英语(试卷+解析).docx
原创力文档

文档评论(0)