日志 | 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\)正负情况计算一下最大最小值就行,要注意叶子节点无论正负都要选,一开始没有考虑这点

  • 251016

    A (60/100, 40min)

    用栈维护每个问号的位置,分别从两端对每个未匹配的括号进行匹配,大概想了五六分钟。

    结果因为修改的时候没有判断栈是否为空导致RE了...

    B(30/40, 25min)

    暴力和特殊性质都很容易,结果数组开小了挂了

    看到 \(n \le 20\) 想到了状压,但没想到怎么做

    C (40/40, 25min)

    题目看了好久才发现有简化版,写了暴力

    D (0/0,20min)

    没想到做法

  • 251017

    继续补了前面两天的题,16号的b题的状压理解花了比较久

  • 251018

    模拟赛。

    A(0/60+,1h)

    一开始想到的写的n方暴力和x = 1的情况,后面写了二分,过了大样例

    但是贪心的写法有点问题,导致全挂了。

    实际上贪心直接选取最大的x个a和p进行匹配,判断分数大于第一个人的个数是否在x以内就行

    B (20/20,20min)

    第一题写了蛮久,看完只会暴力就没多想了

    20分,直接按题意模拟一下,set维护当前只出现过一次的物品,发现没有n方的分

    看了下其他的部分分,对于交换的操作也没想到什么特别好的方法

  • 251021

    A(100/100, 30min)

    要使答案尽可能大则会每次选择将两个奇数或者偶数合并(先合并奇数),否则会选择合并一奇一偶

    根据奇数的个数举几个例子 可以发现每次合并-1的周期为3,但当奇数个数对3取模为1时要多减一个的规律

    B(0/30,30min)

    考试的时候写了前30分,没想到最多只会选择1种b这个点

    C(40/40,40min)

    写了暴力dp+特殊性质,一开始还没看出来优化。

    D(20/20,40min)

    想了很久也没想到平方的做法

  • 251022

    继续改前两天的题,其中昨天的C题理解了很久

  • 251023

    A(100/100,40min)

    一开始一直在想每次如何确定修改左边还是右边更优,后面发现\(log(n)\le 17\)可以直接dfs

    B(0/0, 20min)

    第一遍看完没有什么想法就先看后面的了,想着后面回来看结果回不来了

    正解的dp很好理解,但想到做法有点难度

    C(0/0,30min)

    同样也是看完没什么思路

    但其实稍微推一下就能推出来点东西 O(nq)的做法容易推出

    D(5/20,50min)

    前20分的暴搜写的很复杂。一开始看错题了以为是不能走重复的点,调了很久还是错了

  • 251025

    A (100/100, 40min)

    不知道为什么做了这么久

    先算出每个点作为起点的三元组数量 二分求出第k个的开头是哪个数 再按顺序遍历每个点计算答案

    B (10/10, 20min)

    不知道未给出的点对答案的影响,然后就写了10分

    其实想到了30的dp,但觉得 \(n \le 20\) 过不了 \(O(2^N * N^2)\) 就去看后面的了

    结果是可以的,下次还是要写上

    C (20/100, 35min)

    交换的时候只交换了编号数组没交换颜色数组导致错了一个点

    D (0/10, 20min)

    因为答案初始化为0导致全wa了(题面上还特意提示了。。。

    后面的30分想到了求区间最小 但没想到怎么算 其实就是一遍前缀max加一遍后缀max

    对于k = 0的情况 最优的情况即为取一个点的ab值求两数差的最大值 因为对于 \(max{a_i}\),多取只会使得当前最大的b值更大

  • 251027

    完成补充提单的前五题,后面三题做的比较久

    abc247f

    对于一张牌的两面所处位置进行连边,将处于同一环上的用并查集合并

    每个环的贡献只跟大小有关,dp手推几个可以推出规律,但是手算错了。。。

    CF2149F

    想到二分答案后不知道怎么写check

  • 251028

    A (40min,50/50)

    看完题只想到了枚举不动的点和公差,在计算修需改的个数和特殊性质的写法,复杂度 \(O(n^3)\)

    实际上公差只需要枚举到w/n就可以了,在此基础上算出每个位置不改变的情况下对应的首项,再算每个首项作为答案的最小修改个数

    一开始将答案赋值为n - 1一直wa了一个点,改为n就过了,不过为什么答案会有等于n的情况

    B (20min, 0/0)

    考试的时候对操作3完全没有想法,,,加上T1没写出来就想着去写后面的部分分了,没仔细想

    本来是想写度数为2的特殊性质的结果看错了以为是相邻的点只有一个

    实际上只有单独的或者比相邻的点编号都小的点才能留下来,用一个数组记录每个点有多少个编号小于自己的邻点,每次修改的时候维护一下即可

    C(30min,40/60)

    写的第一档和第三档部分

    三方/平方的做法很简单但是没想到,着实不该

    对于\(a_i\)是2的幂的特殊性质也写了但好像有点问题

    D (40min,50/50)

    没挂分,感动

    两个特殊性质都比较好写,然后前面写了30分,如果是nm暴力的做法的话可以有40分

  • 251029

    改了昨天的T2和T3赛时暴力代码的一个问题

  • 251030

    A (90/100, 35min)

    一开始看错题了,以为是重排b串,调了好久

    想法是每次选能选的最小的字母,如果有无法填合法的情况就和前面的交换一下(结果这一步写错了,竟然只挂了一个点

    B (16/45, 50min)

    没有想到转化为两个阶乘相乘的形式,乘积太大了导致错了

    C (12/0, 20min)

    乱写了一个搜索没打算有分来着

    其实每次选择将a_i的乘上{0,-1,1}其中之一的最小值即为答案,可以写\(O(3 ^ n)\)的搜索

    D (0/15, 25min)

    写了前两个特殊性质,结果距离算错了应该是减 l 的

posted @ 2025-10-16 14:40  Jiaiaiaiaiaiaiaiaia  阅读(18)  评论(0)    收藏  举报