总结1

后缀数组:
1.倍增算法O(nlogn);
2.DC3算法O(n);
在字符窜后加一个小于所有字符的字符;

但DC3的基数比较大,实际效率1.5:1左右;



A*
f=g+h;
g:是已知的代价;
h:预估代价;
h<实际代价;
开放列表(优先队列)中取最小,时候加入到关闭列表,每次更新判断是否在关闭列表;
评估函数:任意节点的评估值f必须不小于父节点的f值,即f单调递增;

IDA*
预定maxh;
当maxh<now+h剪枝;
在程序实现上,IDA*要比A*方便,因为不需要保存结点,不需要判重复,也不需要根据h值对结点排序,占用空间小

ac自动机,tire图
1.建立tire树;
2.建立ac自动机
用bfs,找到fail指针、匹配长度、匹配量……等所需信息;
3.文本匹配,获取信息;

可用于状态转移,去除失败状态,得到转移的矩阵(一般边长为状态数),然后进行dp,快速幂等;

可以直接在ac自动机上直接dp而不得出矩阵;



后缀数组
1.倍增算法。
2.DC3算法
要在字符窜后加一个比所有字符都小的字符。
能得到字符窜所有后缀的排名

双连通分量,求无向图的桥(割边),割点。
强连通分量,求有向图。
都有Tarjan算法。

矩阵乘法O(M^3*logN),直接转移O(M^2*N);所以当N比较大时,M比较小时用它。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值