D13-AcWing-复习831+835-841

33 篇文章 0 订阅
23 篇文章 0 订阅

今天看了一些最小生成树、最短路和数论啊啊 啊啊
先复习一下之前的把,如果有时间再看代码。、
今天还要去跑步,还不知道是剪视频,还是把代码敲完呀,纠结。
今天复习831+835-841
怕极了,但是还要冲啊

831

KMPKMPomg

太棒了,完全忘了。
而且很难理解,额鹅鹅鹅,先默写下来吧

n = int(input())
p = ' '+ input()
m = int(input())
s = ' '+ input()

N = 100010
ne = [0]*N
j = 0
for i in range(2,n+1):
    while j and p[i]!=p[j+1]:
        j = ne[j]
    if p[i] == p[j+1]:
        j+=1
    ne[i] = j

j = 0 
for i in range(1,m+1):
    while j and s[i]!=p[j+1]:
        j =ne[j]
    if s[i]==p[j+1]:
        j+=1
    if j==n:
        print(i-n,end = ' ')
        j = ne[j]

好难受啊,不想写了呜呜呜。

跑完步了,今天外面下雨,跑的很慢,跑了7km。跑完去买鸡腿,却换成了牛肉汤。跑遍了所有食堂,都没找到鸡腿,回去吃了4个在pdd买的西红柿,喝了一杯蛋白粉,撑死啦!!!!!!!!!!!
现在来大战kmp
又看了一遍,感觉会稍好一点。
就是原来的暴力,需要i一点点挪动,然后j跟着挪,然后比较。现在直接把i挪好几个格子。
再写一下吧
理解的好一点了——现在i不用一个一个移动了,直接保持原位置不动——也就是说底下的模式链一下子可以移动好几位;而且可以直接从第j个开始比较。

835

也忘了
挺精巧的
对着抄一遍,再默写一遍把

836

也是对着敲了一遍,再默写。

837

1\新的集合数量为原来相加
2\先更新数量再更改集合
3、只有不在同一个集合的时候才作相应操作,要先判断。

839

插入时应该在堆末尾插入,也就是h[size],而不应该写成h[idx],
然后,不要忘记up!
swap中的参数是堆中的值,别忘记转换啊

840

841

我太棒了,居然复习完了,为自己感到骄傲,

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值