嗯,没错,又搁浅了三天。这次卷土重来了!
829模拟队列
pt前别忘了*,接收不定数量的变量
m = int(input())
N = 100010
q = [0]*N
hh, tt = 0,-1def push(x):global tttt += 1q[tt] = xdef pop():global hhhh += 1def empty():global tt,hhif tt>=hh:return Falseelse:return Truedef query():global hhreturn q[hh]for _ in range(m):# pt前面别忘了*op, *pt = input().split()if op=='push':x = int(pt[0])push(x)elif op=='empty':if empty():print('YES')else:print('NO')elif op=='query':print(query())else:pop()
828 模拟栈
m = int(input())
N = 100010
stk = [0]*N
tt = 0def push(x):global tttt += 1stk[tt] = xdef pop():global tttt -= 1def empty():global ttif tt>0:return Falseelse:return Truedef query():global ttreturn stk[tt]for _ in range(m):op, *pt = input().split()if op=='push':x = int(pt[0])push(x)elif op=='pop':pop()elif op=='empty':if empty():print('YES')else:print('NO')else:print(query())
830 单调栈
解的不错!从最开始的if判断,转换为了while
N = int(input())
a = list(map(int,input().split()))
stk = [0]*N
tt = 0for i in range(N):while tt and stk[tt]>=a[i]:tt -= 1if not tt:print(-1, end=' ')else:print(stk[tt], end=' ')tt += 1stk[tt] = a[i]
826单链表
无论是在哪里插入,插入后idx都要加1
m = int(input())
N = 100010
e, ne = [0]*N, [0]*N
h,idx = -1,1def insert_h(x):global idx,he[idx] = xne[idx] = hh = idxidx += 1def rem(k):global hif k==0:h = ne[h]else:ne[k] =ne[ne[k]]def insert(k,x):global idxe[idx] = xne[idx] = ne[k]ne[k] = idx# 别忘了插入后idx+=1idx += 1
for _ in range(m):op, *pt = input().split()if op=='H':x = int(pt[0])insert_h(x)elif op=='D':k = int(pt[0])rem(k)else:k, x = map(int,pt)insert(k, x)while h!=-1:print(e[h], end=' ')h = ne[h]
no log
默认strategy为steps,默认step为500==>不到500,则no log
保存eval最好的模型
当load_best_model_at_end设置为True后,则不会根据save_strategy进行保存,而是根据evaluation_strategy进行保存,这样可以用于找到best_model,然后在所有epoch都进行完后load,作为最后的参数,然后保存。当我们设置load_best_model_at_end=True时,我们默认best为越大越好。
如下图,因为load_best_model_at_end=True,所以save_strategy被ignore了,直接看evaluation_strategy。
终于把比赛代码改出了一份model
嗯嗯嗯,这个代码我拖了大概有10天?没想到3个小时左右就改完了一份model,后续照葫芦画瓢,应该蛮快的。3小时的工作,却让我不知不觉emo了10多天,put off了很多工作,看来真的是肝就完了,直接面对是解决问题的最好方式。