算法合集之《浅谈数形结合思想在信息学竞赛中的应用》[精选].ppt

算法合集之《浅谈数形结合思想在信息学竞赛中的应用》[精选].ppt

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
算法合集之《浅谈数形结合思想在信息学竞赛中的应用》[精选]

浅谈数形结合思想在信息学竞赛中的应用 安徽 周源 引子 数与形是数学中两个最古老而又最基本的对象 数形结合又是一种重要的数学思想 在算法和程序设计中,巧妙地运用数形结合思想,可以顺利的破解问题,化难为易,找到问题的解题思路。 数形结合思想常包括以下几个方面: 以形助数 [例一]Raney的证明 [例二]最大平均值问题 以数助形 [例三]画室 以形助数 繁杂代数关系后常隐藏着丰富的几何背景 借助背景图形的性质,可以使原本复杂的数量关系和抽象的概念显得直观,从而找到设计算法的捷径。 [例二]最大平均值问题(USACO) 读入一列正数,a1, a2, …, aN,以及数F 求一段长度大于等于F且平均值最大的子串 定义若i≤j,ave(i, j) = (ai+…+aj) / (j-i+1) 目标:Max{ave(a, b) | a ≤ b-F+1} 范围:F≤N≤100 000 例如N=4的序列中,F=2 2, 5, 2, 5 ave(2, 4) = (5 + 2 + 5) / 3 = 4最大 初步分析 O(N2)算法 枚举一个b :称为检查点 枚举符合条件a :称为被检查点, 检查集合 条件即为 a ≤ b-F+1 同时检查ave(a, b) 目标图形化 设部分和序列Si为{ai}前i项和,S0=0 ave(i, j) = [Sj - Si-1] /[j - (i-1)] 过两点的直线:Pi-1(i-1, Si-1),Pj(j, Sj) 问题转化: 平面上已知N+1个点,Pi(i, Si),0≤i≤N 求横向距离大于等于F的两点连线的最大斜率 目标图形化 数列{ai}=(2, 5, 2, 5),F=2 部分和{Si}=(0, 2, 7, 9, 14) 构造下凸折线 考察检查点Z 三个被检查点 从左到右三个点 A, B, C 若B是上凸点? 构造下凸折线 若B不多余 k(BZ)有可能最大 若k(BZ)大于k(AZ) Z在1号区域 若k(BZ)大于k(CZ) Z在2号区域 若k(BZ)最大 Z在阴影重叠区域! 与B在Z左方矛盾 B多余 结论:每个点的检查集合只需要保留一个下凸函数即可 在检查集合中查找斜率最大点,即寻找切点 维护下凸折线 目标:得到每一个检查集合的下凸折线 类似于求凸包过程 线形时间内完成! 最后的优化:利用单调性 每次如何寻找切线? 二分法: O(log2N) 利用折线斜率单调性: O(1) 更快,更简单 请同学们自行思考 [例二]最大平均值问题(USACO) 小结 一开始就确立了以平面几何为思考工具的正确路线 重要结论:检查集合中有用的点构成一个下凸函数 类似于计算几何中求凸包的方法维护一个下凸折线 利用下凸函数斜率单调性得到找切线的简单方法 围绕平面几何为中心,以斜率为主线 整个解题过程一气呵成 避免了令人头晕的代数式变换 堪称以形助数的经典例题。 以数助形 一些试题给出的描述中图形极为复杂,容易使选手陷入“迷魂阵” 以数助形,一举抓住其本质特征,不失为解题的一种好方法。 [例三]画室(POI oi V Stage I) 定义尺寸为0的方阵为一个1*1的矩阵,在其唯一的一个方格中有一个小孔。 对于i0,递归的定义尺寸为i的方阵: [例三]画室(POI oi V Stage I) 已知尺寸N,和两个参数X和Y 准备两个尺寸为N的方阵叠放在一起 上面的方阵右移X列,上移Y行 求两个方阵有多少个公共的孔? 如N=2, X=2, Y=2 有3个公共孔 初步分析 直接分析两个方阵相交后的情况是可行的 集训队前辈解题报告的一个附图 结论:“形”的路子很坎坷 目标数值化 将行列按图示方法从0开始编号 每个方格都有唯一坐标P(x, y) P(x, y)内有小孔?? 目标数值化 将x, y化为二进制 a1a2a3…aN 和 b1b2b3…bN 考察a1和b1对方格位置的影响 a1=0且b1=1时方格内必无孔! 方格的有孔性质 当且仅当不存在1≤i≤N 满足ai=0且bi=1时 方格P内有小孔。 动态规划解题 题目即求满足下列条件的方格P(x, y)个数 0≤x, y,x+X, y+Y≤2N-1 (x, y),(x+X, y+Y)都满足有孔性质 算法简述 以位数为阶段 通过记录x+X和y+Y进位情况保证无后效性 时间复杂度:O(N) 空间复杂度:O(1) [例三]画室(POI oi V Stage I) 小结 “形”:情况复杂,不宜讨论 “数”:方格的有孔性质和有公共孔性质 更简单的解题 面对复杂的图形 化形归数 往往是抓住题目要害的好方法 总结 总结 总结 谢谢大家 [例二]关于找切线的方法 利用折线斜率单调性: 若已知一条切线ZA A左方点可

文档评论(0)

dart002 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档