北大ACM暑期培训课程目录(四)

本文出自:http://blog.csdn.net/svitter

Computational Geometry

计算几何

ACM中基本是最麻烦的部分。

几何代码都要自己写,STL中也没有。基本上。

struct point

数乘,差乘,计算几何题目抄。一个数字由于误差积累造成大。

避免误差。

注意:

a=b <=> |a-b| < e

a<b <=> a-b < -e

a<=b <=> a-b < e

e 多10^-8

四舍六入五差 +- e

精度问题。(流行技巧)

!!慎用

矢量(向量)

主要就是向量。(不用平面几何)

点积

夹角

a.b反映的是投影。

垂直

正交的东西。缩放(单位长度)

投影长度如何算?投影模。

矢量的对称,入射出射光。

计算几何和解析几何不同。

二维叉积。叉积在二维空间里是一个数字。

三维空间中是一个向量。

叉积满足逆交换律。axb = -bxa

!!计算几何中最常用的概念。

叉积可以算面积。

绝对值的叉积很少用,一般都是基于叉积的。

格林公式?

边缘积分也是这个。

axb的正负。??

a.b可以求出a在b的前面还是后面。(矢量的前后)

axb可以求出左右。

将矢量看成列矢量。

重新理解坐标(a,b) = a * (1, 0) + b*(0,1);

矩阵的逆制。

cmath中-Pi, Pi

点和向量非常不同。

不要写两个结构。

点可以假设成从(0,0)出发的向量。

利用矢量表示。

!!一个点和一个方向向量表示直线!!

视实际情况而定。

直线相交

如果两条直线平行则不想交

点击=0是垂直。

重合即平行加点相同。

!!排除部分情况。

简单多边形的三角化

三角剖分

既有正部分,也有负部分。

求质点组的重心

(a+b+c)/3

把三角形转换成为质点

凸集

!!大胆猜想,不用求证。

水平序Grahan扫描算法

不容易出错。

旋转卡壳算法

如何计算n个点中,距离最大的两个点的距离?

对種点,是一个二元关系。

半平面,一办平面。

高维度空间可以被n-1维空间切开。

北大ACM暑期培训课程目录(四)

时间: 2024-10-22 16:30:45

北大ACM暑期培训课程目录(四)的相关文章

北大ACM暑期培训课程目录(五)

本文出自:http://blog.csdn.net/svitter netFlow Ford-Fulkerson 深度优先搜索,制作一个流网络. 部分路径可能不合理. 对上次dfs的边就行重新筛选.每条边来个反向边. 再来一次dfs 发现还能找到一条路径. dfs->abtray edge->dfs stop when no new stream 容量相等. *残余网络 寻找变数最少的增广路径 通过bfs寻找增广路劲 Edmonds-Karp最短增广路算法 依然不是很好的算法. POJ1273

北大ACM暑期培训课程目录(三)

本文出自:http://blog.csdn.net/svitter 一.图的生成树 .必然含有n-1条边. .无向带权图. .如何求最小生成树. .prime | kruskal Prime: 从点里面找一个最短的边. kruskal: 从边里面找. .密集图使用邻接矩阵来存储. .稀疏图用邻接表来存储. .开一个邻接表,一个vector的一维数组. 时间复杂度(ElogV) 一般情况下邻接表更加优秀 题目:poj1258(邻接矩阵) 使用prime+堆完成.priority_queue(就是二

北大ACM暑期培训课程目录(二)

本文出自:http://blog.csdn.net/svitter 原来的一篇可能是因为字数太长,一编辑就出问题,无奈,只好暂时写一篇新的. 今天学习的内容是搜索. 一.wide search 1.poj3307 cow 深度搜索还要用栈. 广度搜速度更快. 按照层次的顺序访问节点. 走n步可以到达的点,n-1不可以到达.绝对是最优解. 可以联系图来想--周围区域扩展. re记住已经走过的点(如果转换成树呢?) 利用队列来存点. 广搜的空间大,深搜可以用一个栈来维护.(相对于广搜空间少的多) o

北大ACM暑期培训(1)——线段树,树状数组

本文出自:http://blog.csdn.net/svitter 今天ACM暑期实训开始了,今天讲述的内容是: 7.14  数据结构(一): 线段树,树状数组,二维线段树. 线段树:invertal tree (称为区间树更加合适) 作用:快速区间查询,用于解决区间统计的有关问题. 重点:同层节点不重叠. 每层最多有两个终止节点. 更新和进行区间分解的时间复杂度均为log(n); 方法:调用会多次使用递归更新插入查询: 空间:开空间的时候,一般情况下开4n大小,2*2log[n] - 1 <=

北大ACM题库习题分类与简介(转载)

在百度文库上找到的,不知是哪位大牛整理的,真的很不错! zz题 目分类 Posted by fishhead at 2007-01-13 12:44:58.0 -------------------------------------------------------------------------------- acm.pku.edu.cn 1. 排序 1423, 1694, 1723, 1727, 1763, 1788, 1828, 1838, 1840, 2201, 2376, 23

ACM 整数划分(四)

整数划分(四) 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 暑假来了,hrdv 又要留学校在参加ACM集训了,集训的生活非常Happy(ps:你懂得),可是他最近遇到了一个难题,让他百思不得其解,他非常郁闷..亲爱的你能帮帮他吗? 问题是我们经常见到的整数划分,给出两个整数 n , m ,要求在 n 中加入m - 1 个乘号,将n分成m段,求出这m段的最大乘积 输入 第一行是一个整数T,表示有T组测试数据接下来T行,每行有两个正整数 n,m ( 1<= n <

PHP遍历目录四种方法

学习SPL的时候,遇到了DirectoryIterator这个目录类,谢了一下遍历目录的方法.于是总结一下遍历目录的四种写法 如下: <?php /* * 方法一:利用SPL的目录类,这个很简单 */ $obj = new DirectoryIterator('E:\wamp\bin\php\php5.3.3'); foreach ($obj as $file){ echo $file->getFileName(); echo "<br/>"; } /* * 方

北大ACM试题分类

OJ上的一些水题(可用来练手和增加自信) (poj1003,poj1004,poj1005,poj1207,poj3299,poj2159,poj2739,poj1083,poj2262,poj3006,poj2255,poj3094) 初级: 一.基本算法: (1)枚举. (poj1018,poj1753,poj2965)(2)贪心(poj1328,poj2109,poj2586)(3)递归和分治法. (4)递推. (5)构造法.(poj3295,poj3239)(6.1)模拟法.(poj10

北大ACM(POJ1003-Hangover)

Question:http://poj.org/problem?id=1003问题点:水题. 1 Memory: 220K Time: 0MS 2 Language: C++ Result: Accepted 3 4 #include <iostream> 5 using namespace std; 6 int calcCard(float f) 7 { 8 float sum=0; 9 int i=2; 10 for(;sum<f;i++) 11 { 12 sum+=1.0f/i;