1杨弋《Hash在信息学竞赛中的一类应用》课件_第1页
1杨弋《Hash在信息学竞赛中的一类应用》课件_第2页
1杨弋《Hash在信息学竞赛中的一类应用》课件_第3页
1杨弋《Hash在信息学竞赛中的一类应用》课件_第4页
1杨弋《Hash在信息学竞赛中的一类应用》课件_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Hash在信息学竞赛中的一类应用安徽师范大学附属中学 杨弋Hash在信息学竞赛中的一类应用安徽师范大学附属中学 杨弋1前言Hash前言Hash2前言Hash前言Hash3前言HashCRC32!MD5!SHA-1!More…前言HashCRC32!MD5!SHA-1!More…4例1.多维匹配一维:在一个串中找另一个串第一次出现的位置二维:在一个字符矩阵中找另一个字符矩阵第一次出现的位置如果扩展到k(k≤10)维呢?例1.多维匹配一维:在一个串中找另一个串第一次出现的位置5例1.多维匹配一维的情况:Rabin-Karp算法cacababcabacabO(NM)?例1.多维匹配一维的情况:Rabin-Karp算法cacab6例1.多维匹配一维的情况:Rabin-Karp算法abc×××1pp2abc×××1pp2求和××pp2×p3a×1O(NM)?O(N+M)![]qmodiXpMiXSpfSfMii

][][)()(1-++=+qmod

úûùêëépiSSfSleniiSlen][)()(1)(=å=-例1.多维匹配一维的情况:Rabin-Karp算法abc××7例1.多维匹配扩展到二维的情况abaacbbcabac×p2×p×p2×p2×p2×p×p×p×q3q3q3q2q2qq×q2×q例1.多维匹配扩展到二维的情况abaacbbcabac×p28例1.多维匹配扩展到二维的情况×p3×p1××p2×p2p××p3×p4×1例1.多维匹配扩展到二维的情况×p3×p1××p2×p2p×9例1.多维匹配更高维的情况……例1.多维匹配更高维的情况……10例1.多维匹配传统算法O(k(N+M))难以理解相对实现困难多维Rabin-KarpO(kN+M)易于理解易于编写,不易出错例1.多维匹配传统算法多维Rabin-Karp11例1.多维匹配回顾:我们是怎么计算出Hash值的?部分和?两端增加或者删除一位后的Hash值计算两个串连接后的串的Hash值O(1)O(1)线段树!SparseTable!分块!预处理!平衡树!例1.多维匹配回顾:我们是怎么计算出Hash值的?部分和?两12例2.树和图的同构有根树=≠例2.树和图的同构有根树=≠13例2.树和图的同构有根树例2.树和图的同构有根树14例2.树和图的同构有根树对每一个子树计算一个Hash值……12341234123412341234×131=1417(mod2081)1417141712341234(mod2081)((×557)xor×557)xor924×131=3461417141734668例2.树和图的同构有根树对每一个子树计算一个Hash值……115例2.树和图的同构有根树68516≠≠例2.树和图的同构有根树68516≠≠16例2.树和图的同构有根树O(nlogn)可以给出具体对应方案可以使用Hash表在O(1)时间内查询例2.树和图的同构有根树O(nlogn)可以给出具体对应17例2.树和图的同构有根树,另一种办法树→串23010010子树的顺序?字母序?按Hash值排序!例2.树和图的同构有根树,另一种办法树→串23010010子18例2.树和图的同构无根树f(u,v)表示以u为v的父亲节点时以v为根的子树的Hash值uv例2.树和图的同构无根树f(u,v)表示以u为v的父亲节点时19例2.树和图的同构无根树类似地,有根森林,甚至任意图的同构问题也是可以使用Hash函数解决的例2.树和图的同构无根树类似地,有根森林,甚至任意图的同构问20总结Hash的本质Hash信息量大不易比较方便高效地比较“概括”化繁为简总结Hash的本质Hash信息量大方便高效地比较“概括”21总结正确性优美性有所舍弃?效率简洁扩展性有所收获!题目适合理想的算法自己总结正确性优美性有所舍弃?效率简洁扩展性有所收获!题目适合理22结束谢谢!结束谢谢!23例2.树和图的同构为什么不直接用Rabin-Karp那样的先乘后加?Leaf*(p2+p+1)*q*(p+1)*q(Leaf*(p+1)*q*p+Leaf*(p3+p2+p+1)*q)*q½的可能为==例2.树和图的同构为什么不直接用Rabin-Karp那样的先24Hash在信息学竞赛中的一类应用安徽师范大学附属中学 杨弋Hash在信息学竞赛中的一类应用安徽师范大学附属中学 杨弋25前言Hash前言Hash26前言Hash前言Hash27前言HashCRC32!MD5!SHA-1!More…前言HashCRC32!MD5!SHA-1!More…28例1.多维匹配一维:在一个串中找另一个串第一次出现的位置二维:在一个字符矩阵中找另一个字符矩阵第一次出现的位置如果扩展到k(k≤10)维呢?例1.多维匹配一维:在一个串中找另一个串第一次出现的位置29例1.多维匹配一维的情况:Rabin-Karp算法cacababcabacabO(NM)?例1.多维匹配一维的情况:Rabin-Karp算法cacab30例1.多维匹配一维的情况:Rabin-Karp算法abc×××1pp2abc×××1pp2求和××pp2×p3a×1O(NM)?O(N+M)![]qmodiXpMiXSpfSfMii

][][)()(1-++=+qmod

úûùêëépiSSfSleniiSlen][)()(1)(=å=-例1.多维匹配一维的情况:Rabin-Karp算法abc××31例1.多维匹配扩展到二维的情况abaacbbcabac×p2×p×p2×p2×p2×p×p×p×q3q3q3q2q2qq×q2×q例1.多维匹配扩展到二维的情况abaacbbcabac×p232例1.多维匹配扩展到二维的情况×p3×p1××p2×p2p××p3×p4×1例1.多维匹配扩展到二维的情况×p3×p1××p2×p2p×33例1.多维匹配更高维的情况……例1.多维匹配更高维的情况……34例1.多维匹配传统算法O(k(N+M))难以理解相对实现困难多维Rabin-KarpO(kN+M)易于理解易于编写,不易出错例1.多维匹配传统算法多维Rabin-Karp35例1.多维匹配回顾:我们是怎么计算出Hash值的?部分和?两端增加或者删除一位后的Hash值计算两个串连接后的串的Hash值O(1)O(1)线段树!SparseTable!分块!预处理!平衡树!例1.多维匹配回顾:我们是怎么计算出Hash值的?部分和?两36例2.树和图的同构有根树=≠例2.树和图的同构有根树=≠37例2.树和图的同构有根树例2.树和图的同构有根树38例2.树和图的同构有根树对每一个子树计算一个Hash值……12341234123412341234×131=1417(mod2081)1417141712341234(mod2081)((×557)xor×557)xor924×131=3461417141734668例2.树和图的同构有根树对每一个子树计算一个Hash值……139例2.树和图的同构有根树68516≠≠例2.树和图的同构有根树68516≠≠40例2.树和图的同构有根树O(nlogn)可以给出具体对应方案可以使用Hash表在O(1)时间内查询例2.树和图的同构有根树O(nlogn)可以给出具体对应41例2.树和图的同构有根树,另一种办法树→串23010010子树的顺序?字母序?按Hash值排序!例2.树和图的同构有根树,另一种办法树→串23010010子42例2.树和图的同构无根树f(u,v)表示以u为v的父亲节点时以v为根的子树的Hash值uv例2.树和图的同构无根树f(u,v)表示以u为v的父亲节点时43例2.树和图的同构无根树类似地,有根森林,甚至任意图的同构问题也是可以使用Hash函数解决的例2.树和图的同构无根树类似地,有根森林,甚至任意图的同构问44总结Hash的本质Hash信息量大不易比较方便高效地比较“概括”化繁为简总结Hash的本质Hash信息量大方便高效地比较“概括”45总结正确性优美性有所舍弃?效率简洁扩展性有所收获!

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论