最短距离计算——文档.docVIP

  1. 1、本文档共26页,可阅读全部内容。
  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文档。上传文档
查看更多
最短距离计算——文档

最短距离计算 1问题说明 某公司国内市场IC与PC 各占一半,规定了它们的支点位置,IC的支点总在PC的支点左边 (x1, y1)与 (x2, y2) 之间的距离定义为 |x1 – x2| + |y1 – y2|. IC与PC 支点间的位置集合为I和P,计算出i ∈ I, p ∈ P的所有点的最短距离. 例如:蓝色为IC 支点,红色为PC支点。 IC与PC之间的最短距离为5 2 输入 File Name?data.txt data.txt 文件在下面内容中顺次储存 属于I的点的数n(1 ≤ n ≤ 100,000) (x, y) 储存n 个 (-106 ≤ x ≤ 106, -106 ≤ y ≤ 106), x与 y是整数 属于P的点的数n(1 ≤ n ≤ 100,000) (x, y) 储存m个 (-106 ≤ x ≤ 106, -106 ≤ y ≤ 106), x与 y是整数 使用 fopen与fscanf 函数,读出在data.txt 文件储存的内容 3 输出 I与P之间最短距离与形成最短距离的两个点i与p的坐标 程序所要时间(使用clock函数计算) 4 作业评价方法(两个程序都提交的话满分30分) 程序1:具体体现出 I的所有点(n个)与P的所有点(m个)之间的比较计算时(10分) 程序2: 改善 程序1的缺点的算法 具体体现时(20分) 100000个坐标各个输入时,程序1的实行时间与程序2的实行时间比较时要有悬殊的差异。 改善的算法的基本概念做成文书 5 实行的例子 参考文献: /liangrt_fd/item/1049540c6226d373bfe97e4a /heyongluoyao8/article/details/7109739 /u20/e89a329f-f9da-4042-91d7-c51efe11cffd.html /s?ie=utf-8bs=%E6%9C%80%E8%BF%91%E6%8E%A5%E8%BF%91%E7%82%B9f=8rsv_bp=1wd=%E4%B8%A4%E9%9B%86%E5%90%88+%E6%9C%80%E8%BF%91%E6%8E%A5%E8%BF%91%E7%82%B9rsv_sug3=3rsv_sug1=2rsv_sug4=125inputT=8516 寻找满足条件的子序列 (之二):将一个集合拆分为和相同/最接近的两个子集(1) 上面我们谈到的问题“从一个数组中取得和为C的两个数”,数组可以理解为一个集合,集合也可以理解为一个数组,我们引入下面一个问题: 有一个包含n个正整数元素的集合,能否将其拆分为两个子集A,B,使A中元素之和与B中元素之和相等? ?????? 其实该问题只要找出一个集合即可,可以变换为: ?????? 有一个包含n个整数元素的集合U,存不存在一个子集A,是自己A的元素之和为U中元素之和的一半? ?????? 用数组array[n]来表示集合U,则U元素之和sum = array[0]+array[1]+…+array[n-1]。 ?????? 那么只要判定是否存在子集A,A中元素之和为sum/2。 ?????? 这个问题类似于背包问题,先让我们回顾一下背包问题,背包问题可以表述为: 有n个宝物,每个宝物有容积v和价值e属性,现有一个背包容积为V,问如何取宝物才可以保证背包中宝物价值最大。 ?????? 背包问题动态规划方法: ????????????? S[i][v]表示对于前k个元素,背包总空间为v的情况下可以存放宝物的最大价值。 ????????????? v[i]表示元素i的体积,e[i]表示元素i的价值,元素下表设为从0开始。 ????????????? S[i][v] = max{S[i-1][v], S[i-1][v-v[i]]]+e[i]} i=1 and vv[i] ????????????? S[0][v]=0 if vv[0] ????????????? S[0][v]=e[0] if v=v[0] ?????? 当前问题可以表述成,一个背包容积为sum/2,可否用宝物将其装满?其实问题比背包问题还要简单许多: ????????????? 设isOk[i][v]:前i个元素可否将空间v装满,true?false。 ?????? 问题可以表述为: ????????????? if i=1 and i=n-1 if v=v[i] ?????? isOk[i][v]=isOk[i-1][v] || isOk[i-1][v-[v[i]]]??? ???????????????????? else ????????????? ?????? ?????? isOk[i]

文档评论(0)

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

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

1亿VIP精品文档

相关文档