noip算法总结最新分析和总结.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
. 算法总结 一、 动态规划和递推 dp 一般的解题步骤 : 分析问题, 弄清题意——从原问题中抽象出模型——根据模型设计状态, 要求状态满足 最优子结构和无后效性——直接设计状态有难度的话则需要考虑转化模型——根据设 计的状态考虑转移——如果过不了题目要求的数据范围,则需要考虑优化 由于动态规划涉及的内容太多, 只言片语难以讲清, 所以附件中放了很多篇关于动态规 划的文章,大部分系原创,并附上了一些经典的论文,主要讲了 DP 的优化,一些特殊 的状态设计技巧 Dp 和递推没有本质区别,都是用一些状态来描述问题,并记录下一些信息,根据已知 信息推出未知信息,直到得到问题的解 关于 DP 的优化有两篇神级论文,放在附件里面了,写的非常好。 二、 图论及网络流 最小生成树 :克鲁斯卡尔算法和普利姆算法, ——重要性质 1:最小生成树上任意两点的路径的最大边最小 ——重要性质 2:最小生成树的多解(方案个数)只与相同权值的的边有关 (省队集训 题 生成树计数) 最短路 :spfa 算法、堆 +迪杰斯特拉算法 Spfa 算法是基于 松弛技术 的,随机图效果极佳, 最坏 (网格图或存在负权环) O(nm), 适用于任意图,能够判断负权环 ——判负权环的方法: 记录每个点当前从原点到它的最短路上边的条数, 如果某次更 新后这个条数 n-1 则存在负权环 堆 +迪杰斯特拉则是用了贪心的思想,不断扩大确定 dist 的集合,同时更新 dist , 如果边权有负值就不能做,复杂度是 O((n+m)logn) 的 拓扑排序 :可以 将有向图转化为一个线性的序列 ,满足一个点所有的前驱结点都出现在 这个点在序列中的位置之前。可以判断这个有向图是否有环 ——一个简单而实用的扩展: 给树做类 top 排序, 可以有类似的功能, 即每次去掉叶子 结点,将树转化为一个具有拓扑关系的序列 ——再扩展:树同构判断,可用类 top 确定树根是谁,再最小表示法 +hash 即可 强连通分量、缩点 :tarjan 算法 核心是每个点记一个时间戳 ti[i], 另外 low[i] 表示 i 点能延伸出的搜索树中节点的 ti[i] 的最小值, 还要维护个栈记当前路径上的点, low[i] 初始化为 ti[i] ,如果搜完 i 了, ti[i]=low[i] 则当前栈顶到 i 的所有点会在一个强连同分量内。 关键代码: procedure dfs(i:longint); . . var j,k:longint; begin inc(time);ti[i]:=time;v[i]:=true;low[i]:=time; inc(ed);q[ed]:=i;j:=h[i]; while j0 do begin k:=point[j]; if ti[k]=0 then begin dfs(k);if low[k]low[i] then low[i]:=low[k]; end else

文档评论(0)

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

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

1亿VIP精品文档

相关文档