2019年7月31日暑假训练学习总结

昨天学习了KMP算法,它的用处为在一个文本串S内查找一个模式串P的出现位置,它基于原来暴力的思想改变,保持i不回溯,通过修改j的位置,让模式串尽可能移动到有效的位置。此外,还借助了CSDN了解了模式串匹配的新算法:BM算法,是从模式串的尾部开始匹配,且时间复杂度为O(N)。此外,还有一个字符串查找算法中最快的一种:Sunday算法,跟BM相似,只不过是从前往后匹配,并且他关注的是参加匹配的最末位字符的下一位字符,由于这种算法每一步移动量都较大,所以效率很高。

然后,又看了最小表示法,主要是将一个给定的字符串不断把它的最后一个字符放到开头,得到的n个字符串中最小的一个,即为字符串S 的最小表示法。

最后,又看了字典树和哈夫曼树的一点皮毛。总而言之,这一部分的数据结构我没有看的十分面面俱到,首先只是了解了他们的原理,然后又看了几个例题,回来还要再详细地看一遍。

晚上总体的情况,除了C,D题比较难,题意很难读懂,也不知道咋做之外,A,B题还是挺好做的,B题要想到枚举x会超时,所以要改变思路S(x),另外需注意的是:我在codeblock写的可以编译通过,但在vjude上却编译错误,难道是vjude的编译容错性太差,上次出现在了pow函数需返回double类型,需强制转换才能编译成功,所以我昨天成功的猜到了是sqrt的也必须是double类型,所以也强制转换了一下,结果对啦,好吧,以后注意。

今天又是好好看书学数据结构的一天,加油。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值