日志 | 2025.11
-
251108
模拟赛
A(60/60)
早上有点困,看了好一会题目
前面一直在推式子想直接算答案 弄了好久发现不对 先想的特殊性质但是也没想到什么特殊的做法
后面去写了枚举到值域的暴力 写完以后发现特殊性质稍微改下就行
正解的式子其实和推的差不多,用双指针维护每个k可以修改到哪个位置就行
B (36/16, 40min)
本来写了t = 0的时候的暴力和特殊性质A
结果还剩十分钟的时候想写点别的分,把前面部分写成函数然后忘记调用了。。。
C (0/0, 10min)
读完没什么思路,加上当时前两题还没写上面部分分,于是就没看了
D (0/0, 20min)
尝试去写了下部分分但是没想出来
其实12分还挺好写的
-
251110
改了上一场的A并补了周末的abc
11.8 A
大概按题解思路写了双指针 但感觉写的很复杂 比题解写的多记了很多东西 写了很久
中间有个点开了 \(ll\) 但答案一直爆了,于是开了个 \(ull\) (感觉不需要啊 可能是别的地方有问题)
目前是t了一个点 不知道为什么
abc413 a-d
前三题比较简单 d题的背包写了一会
-
251111
A
只会20,数组还开小了。。。。
正解就是根据度数的奇偶性分讨计算,属实是没想到
改的时候一开始没注意到是无向边 度数计算错了
B
看完最有想法的题,思考大概用了三十多分钟,但是由于n和模数太大了不知道怎么做
C
看完就对构造没思路,并且看到x非常大, 于是放弃
D
部分分没有思路
-
251112
11.8 A
改对了前面超时的代码。
实际上每次i只要判断\(v_1 ~ v_i\)是否能修改到\(v_{i + 1}\),到\(i + 1\)时再考虑\(i + 1\)及后面的情况 不需要写那么复杂
11.10 B
先预处理出每个\(k^i\)的值。
需要同时处理一段右链那里想了比较久
-
251113
考的时候困死了,不知道在干嘛,很多部分分没写出来
A
看完题只会10分的做法,结果因为没开ll炸了
B
直接dfs加对乘积大于m的剪枝即可通过。
考试的时候看到可重复经过点和边不知道为什么觉得不可做。。。实在暴力分随便怎么写都有不少
题解上写的第二种做法还在看
C
\(n \le 10\) 的暴力写了一大堆,结果建图有个地方写错了
平方暴力就算出三种边不同方向的前缀和,枚举两种边计算答案即可
D
平方暴力的做法很好想到,
最后15分钟才看的题,没写完暴力
-
251114
改完了昨天的A。
贪心对于每次为负数的位置找到前面最近的正数进行修改,记录前缀和后缀,做两次贪心即可
-
251115
A(40/40, 30min)
思考约15min.
没有想到\(k > 10\)的做法,于是只写了40(实际上如果不特判的话能有55...)
对于题解按照\(log_k a_i\)大小排序的做法理解了很久
B(60/60, 40min)
看完很快想到了枚举走的步数,分情况计算最大值的做法。
但是一开始下标计算写错了,调了10分钟不到
对于折返的情况没想到可以用左右两个位置的答案进行更新
C (15/15, 25min)
一直没想到什么能够优化平方的方法,于是只写了15分。
D (0/0, 20min)
看题用了很久,并且看完没有思路。
-
251117
改完周六AB两题。
C题35分的做法是笛卡尔树,重新学习了一下
-
251118
A
一直在想前20分,不知道怎么在值域平方的时间算答案。
后面发现是看错题看成异或了...
正解的高位前缀和貌似不太清楚,明天学习一下
B
看题花了大概十分钟,觉得有点费解
C
一开始看到k的限制想的是刚好凑出大小为\(4n/3\)的构造,A随机生成看的很懵。
尝试了很久,主要是也不清楚自己的构造到底是个什么范围的?
后面才知道\(k\)的范围是不同的几种构造方式的平均值,按照三种方法构造出来后选择次数最小的
其中前两种可以由\(b_i = 1\)的情况转化而来
D
看到感觉很可做,但是不会写dp
-
251119
写了昨天B题的三方做法
对于A题的高维前缀和仍然非常费解
-
251121
A (20/20,30min)
看到特殊性质挺多的觉得可以试着写写,先写了平方的暴力
有想过把每次给出的距离限制转化位跟1号点的距离,但是有很明显的错误就排掉了
然后菊花图的情况不应该就是很显然的存一下边对应的点吗,比答案多了很多,不知道为什么(本来是最后半小时来写这个点的,结果一直没写出来)
B (20/20, 20min)
看到第二档分以为可以用线段树优化一下,结果发现只有查询的时候有小于500的限制
C(0/0)
不会,想的搜索都会超时
D(0/0,30min)
一开始想写的是平方用前缀和和二分算答案,但是样例就发现有问题
-
251121
改了昨天的A
-
251122
A (20/20, 30min)
不知道怎么算概率于是就写了20
B (0/0, 12min)
一开始一直在想三方或平方的dp,到后面发现不对
然后去写\(n \le 5, m \le 5\)的部分没时间了
C (10/10, 30min)
写了一个诡异的记忆化,每次枚举有哪个不为0的位置计算答案
-
251125
abc429e
bfs计算最短路和次短路,要注意判掉两个点相同的情况,因为这个调了蛮久
abc429f
每次对于一个区间\([l, r]\)行的修改,枚举中间点更新答案,用线段树维护
-
-
251126
abc427f
发现n只有60,考虑折半搜索,由于要求相邻的不能选,所以一次的搜索在\(O(2^{15})\)左右
记录答案要使用\(unordered map\), 不然会T,因为这个卡了很久
abc427e
一开始不知道要怎么维护垃圾位置
其实bfs就行,暴力记录现存的垃圾,枚举方向进行转移即可
每次可以用map标记垃圾的序列,保证只操作一次
-
251127
abc426f
首先考虑每次减都不会小于k的情况,那么可以直接线段树维护
对于所有小于k的进行单独处理,即每次线段树到叶子处再处理
由于每个数最多只有一次小于当前k的情况,所以复杂度仍然不变
复习了一下线段树的区间修改
abc422f
发现n比较小,可以平方做
但是w的和会很大,所以以当前点和距离终点还剩下的步数作为状态,倒着枚举剩下的步数stp转移即可
abc421f
链表模拟,对于2操作不知道\(x,y\)的前后顺序可以同时往后走看哪个点会碰到另一个点

浙公网安备 33010602011771号