20.10.07总结

20.10.07总结

今天的比赛难度挺合适的。

T1

十分简单的一道题

直接把字符串按4进制压成整数,用桶计数就好了。

T2

有点意思的一道题

由于这个数列一旦出现连续两个正数或负数,之后就会以指数级别增长,所以把前面几个算一算就好了。

T3

有点难的一道题。

关键是怎么维护mex,比赛的时候我只想到用线段树O(log)维护

由于每次重新加入位置是从最早删的位置开始的,假如x位置在y位置之前,且x在y之后被删,则y是不会对答案产生影响的。所以可以维护一个单调队列从小到大放被删的位置,队头和开头连续段长度的最小值就是答案。

T4

挺难的一道题。

设f[i][j]表示从i点开始,用j元能走的最长距离,计算答案就二分一下。

设g[i][j]表示从i到j,走不超过c[i]步,最长的路程

f[i][j]=max(f[k][j-p[i]]+g[i][k])

设to[i][j][k]表示从i到j走(2^k)步的最长路程

把c[i]拆成(2^{k_1}+2^{k_2}+...)

g'[i][j]=g[i][k]+to[k][j][ki]

原文地址:https://www.cnblogs.com/leason-lyx/p/13779534.html