日志 | 2025.10

日志 | 2025.10

  • 251011

    A (1h,20/70+)

    先写的前两个部分分

    然后后面想到了找间隔一个以内的两个相等的数,分别从前和后将比第一个比他大的数改掉的做法

    不太会算复杂度 大概是平方以内的 但是过了1e5的大样例

    结果因为输入的数组没清空,但遍历的时候遍历到了n + 1的位置,挂到20

    改完后应该是70,最后几个点超时了

  • 251013

    补了周末考试的AB题,C题还没写完

    A题一开始没有考虑到前面的段在修改完后的众数可能发生改变 会影响到后面段的修改

    要单独判断一下前面两个位置的答案是否可能比开始记的更优

    B题 先处理出每段[i,j]是否存在只有端点不亮的情况,可先处理出每个点左右两端离的最近的灯塔,然后再分情况dp转移

    判断距离是否满足的式子推了一会,其实就是离终点最近的两个灯塔所在处的距离需不大于总距离的一半

  • 251015

    改了昨天的题

    B题先将询问离线,把每个问题的编号记到每个询问的x点上,给每个物品开个栈记录当前(当前点及其祖先)有哪些房间里有该物品,遍历每个房间的时候将新的物品对应的每个栈加入该房间的编号

    实现的时候一开始没有注意1作为根节点遍历时未进行操作导致被判为-1,可以再加一个点0作为1的父亲,从0开始遍历

    D题考试的时候写的很复杂还只有20...

    50做法就是暴力dp,每次算出以x为根的子树,从x走到每个点的最小值

    对于每个\(a_i\)相等的情况,分\(a_i\)正负情况计算一下最大最小值就行,要注意叶子节点无论正负都要选,一开始没有考虑这点