




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- epc销售合同范本
- 代售油卡合同范本
- 电子科技在创新创业中的技术支持体系
- 农资商铺转让合同范本
- 个人集体租房合同范例
- 个人瓜果收购合同范本
- 2025年中国熔断器行业发展运行现状及发展趋势预测报告
- 汽车新车合同范本
- 公司订单生产合同范本
- 书柜销售合同范本
- GB/T 2573-2008玻璃纤维增强塑料老化性能试验方法
- GB/T 22560-2008钢铁件的气体氮碳共渗
- GB/T 1265-2003化学试剂溴化钠
- 统编版四年级道德与法治下册全册课件
- 医院评审工作临床科室资料盒目录(15个盒子)
- 社区获得性肺炎临床路径
- 压力性损伤指南解读
- 汤姆走丢了 详细版课件
- 大学学院学生心理危机预防与干预工作预案
- 国有土地上房屋征收与补偿条例 课件
- 铁路建设项目施工企业信用评价办法(铁总建设〔2018〕124号)
评论
0/150
提交评论