数论和计算几何培训课件.pptVIP

  1. 1、本文档共62页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数论和计算几何培训课件

* 凸包 点集Q的凸包是指一个最小凸多边形,满足Q中的点或者在多边形边上或者在其内。 一组平面上的点,求一个包含所有点的最小的凸多边形,这就是凸包问题。 * 求解凸包的算法有好几种,这里介绍一种最好理解的方法,其他方法各位同学感兴趣的话可以上网有哪些信誉好的足球投注网站资料(Graham算法、快速凸包算法等),这里就不介绍了。 这里介绍的算法名字叫做卷包裹算法。 * 该算法可以这样理解:在空地上树立着一堆木桩,在一个最外侧的木桩绑上一根很长绳子,然后顺时针或者逆时针绕一圈。当再一次回到这个起点木桩时,可以保证绳子正好卡主了所有外围的木桩,并得到一个凸包。 * 首先需要找到一个在凸包上的点,这里我们可以找最左边的点,如果有多个点满足条件,可以在这些满足条件的点中选一个最下面的点。找到后加入凸包。 然后以这个点为准点,用向量的叉积找出除这个点以外最外侧的点。并把这个点加入凸包。(如果有多个点满足条件,如果需要保留凸包上的点,则在这些满足条件的点中选一个最近的。若不保留,则选择一个最远的)。 然后用这个新找到的点,在进行以上步骤。 算法的终止条件就是找到的最外侧点为最开始的起点。 该算法的时间复杂度为O(NM)。N为点集中点的总数,M为在凸包中的点的数目。 * 例题 题目输入一组凸包上的点,这些点只会在凸包顶点或者凸包边上,问能否添加一些点,构造出一个更大的新凸包,使得新凸包包含原凸包上的所有的点。 * 首先我们考虑新添加的点可以添加在哪些地方,我们来看下图。 这是凸包的一部分,用虚线分成了区域A和区域B两部分,很明显可以看出新添加的点可能在区域A而不能在区域B。因为若添加在区域B,则点C就不可能出现新凸包中。 * 但是区域A就都可以吗,其实也不是都行的,如下图 我们应该更细分线段CD附近的区域,区域E是不可以,和之前为什么不能再区域B是同一个道理,那么区域A就是可行区域。从全局上看,连续三边中,在中间的边和剩下两边的延长线围成的封闭区域中添加点,就可以满足题目的要求。 * 知道了这一点,那么就比较容易理解什么情况下不会使得新凸包更大了,当封闭区域的面积为0的时候,就无法添加点使得新凸包比原凸包更大。当原凸包上的每条边上的点的数目都有至少三个的时候,是无法添加新的点的。 实现程序时我们只要算出原凸包,然后判断每条边上点数的情况,就可以解出答案了。 * 判断点是否在多边形内 判断点P是否在一个多边形内,我们可以随机一条很长的线段PQ。然后可以求出线段PQ和多边形的交点个数,若交点个数为奇数,则在多边形内,若为偶数,则在多边形外。这里需要注意的是交点不能在多边形顶点上或者线段与多边形的边重合,否则会影响结果,如果出现这些情况,应重新随机一条线段。 * 判断点是否在凸多边形内,我们可以把点P与多边形的顶点全部连接起来,利用向量叉乘求点P与所有相邻两顶点组成的三角形的有向面积,如果所有有向面积同号,则说明P在多边形内,否则在多边形外。 * 谢谢大家! * 之前证明过一个整数n是合数的话在2到sqrt(n)以内必然会有一个因子,而这个因子有可能是合数或者质数,如果是合数的话那么很显然这个合数因子可以拆分成更小的质数因子,因此可以得出结论:整数n是合数的话在2到sqrt(n)以内必然会有一个质因子。 有了这样的结论,那么这题的思路就很明朗了。 * 首先我们筛出1到sqrt(b)之内所有的质数,再用这些质数去筛出a到b之内的质数,如果a到b之间的数字i没有一个小于sqrt(b)的质因子,那么他就是质数,否则就是合数。这样一来就可以算出答案了。 * GCD 最大公约数(GCD):设a和b为两个不全为0的整数,能使c|a并且c|b的最大整数c,称c为a与b的最大公约数 * 求gcd的常用解法:辗转相除法 gcd(a,b)=gcd(b,a mod b) 证明:a可以表示成a=kb+r则r=a mod b。 假设d是a,b的一个公约数,则d|a,d|b,而r=a-kb,因此d|r。 因此d也是(b,a mod b)的公约数。 因此(a,b)和(b,a mod b)的公约数是一样的,其最大公约数也必然相等,得证。 时间复杂度O(logn) * 多个数的gcd gcd(a,b,c)=gcd(a,gcd(b,c)) * LCM 最小公倍数(LCM):设a和b为两个不全为0的整数,能使a|c并且b|c的最小整数c,称c为a与b的最小公倍数 a*b=gcd(a,b)*lcm(a,b) * LCM的解法 lcm(a,b)=a*b/gcd(a,b) 多个数的LCM lcm(a,b,c)=a*b*c/gcd(a,b,c) * 例题1 [noip2009]Hankson的趣味题 n组

文档评论(0)

baoyue + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档