今天看了一些最小生成树、最短路和数论啊啊 啊啊
先复习一下之前的把,如果有时间再看代码。、
今天还要去跑步,还不知道是剪视频,还是把代码敲完呀,纠结。
今天复习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
我太棒了,居然复习完了,为自己感到骄傲,