半AFO的时光 2024.12.3开始连载
前言
记录这段时光吧,沉淀我的轻狂。
这不止是一个记录,到时候我的一些学习笔记也会记录在这,或许也会有一些我的生活趣事?
$ 2024.12.03 ,23:03$ 不管了,我哪里会想那么多,做就对了。
$ 2024.12.05 ,00:57$ 不打算贴代码了,毕竟加了代码公开计划。
\(2024.12.06,00:27\) 一大纲两OJ三题单
\(2024.12.11,03:42\) 这段时间开始练入门组的比赛,稳定 \([350,400]\) 再去提高组,给我静下心来啊。
\(2024.12.11,03:53\) 更新比赛
\(2024.12.12,23:09\) 开通了博客园 。
\(2024.12.13,02:10\) 整合了之前的 \(link\) 。
\(2024.12.14,01:21\) 修改布局,今后上日记下笔记。
\(2024.12.15,01:26\) 分离日记和笔记。
2024.12
2024.12.3
周二上午第四节是自习,跑到机房,想到自己的实力堪忧,还是从基础练起,NOI大纲的第一项就是链表,就练练他吧。
去某OJ上找链表的题,找到 HNOI2002 营业额统计 ,开做,既然有链表tag,就索性写个 $ O(n)$ 的链表,但是 $ 90pts $ ,没过,但是下课了,先去食堂了。
晚上回家,以为 \(lowerbound\) 能解决问题,结果 $ T $ 到 $ 30pts $ 了,搜了一下才发现 $ lowerbound$ 对 $ std::list $ 是负优化,以为是被递增序列卡了,加了个特判还是没过,就用 \(std::vector\) 伪平衡树水过去了。
看了一眼题解去,竟然真有链表解法,但是是离线的,从没学过,听说动态中位数问题也能这么解决,哎哎,果然学的还是太浅了,有空补一下这个离线链表解法,会和对顶堆一起附在这里的。
2024.12.4
到家写了一下数学作业,哎哎,停课回来被催债了,还了一手,到电脑前面已经是 \(10:48\) 了,继续补昨晚的平衡树链表,中午在宿舍有了一些思路,看看能不能实现吧。
\(23:20\) 成功搞定 HNOI2002 营业额统计 ,放个提交记录 。
\(0:33\) 从刚刚开始其实在写 中位数 ,其实早就写完了,但是为了超越之前用对顶堆写的,一直在反复卡常,后来发现数组开小了就行,给出两份提交记录。
链表提交记录 对顶堆提交记录
conclusion
离线链表做这种动态排序问题,其实是利用逆向思维,将加数理解为删数,先开个数组存下访问,然后排序,这里的排序是个时间复杂度瓶颈 \(O(nlogn)\) ,
然后接下来逆序遍历访问,进行 \(O(1)\) 的修改和查询,遍历完该询问后记得删除该节点,在这一过程中往往涉及离散化,总时间复杂度 \(O(nlogn)\) 。
不妨把离线链表和对顶堆进行比较,不难发现离线链表的询问往往十分固定,且每次询问和修改都与当前节点在链表内的相对位置有关,那要是将询问和修改分开呢?
显然这个时候只能用对顶堆解决问题,对顶堆的模板题一般是 黑匣子 。 这道题其实还是能用离线链表解决的,因为询问是递增的,如果询问不递增,那就不好玩了。
12.5
\(22:54\) 其实早就到家了,但是我妈明天要开区里的主题班会,帮他看了看 \(ppt\) 然后闲聊了就到现在了,开写。
\(23:31\) 本来想继续写链表的,但是忽然发现我这样学像个无头苍蝇,而且题目的质量也参差不齐,打算找个题单,我好像知道要找谁的了(
想 \(co\) 是很自然的,但是这绝对不是解决问题的正确方式,现在我没有要攀比的了,那为何不静下心来呢?
\(23:54\) 今天没做题,大概是要休息了,但是从根本上改变了学习策略,今后大概就是一大纲两OJ三题单的配置了。
\(0:23\) 工单反馈版申请del记录了,不知道后续如何
12.6
\(12:15\) 人在机房,还是链表,跟着题单做了两题,还算比较轻松,25分钟一橙一黄,但是感觉很版啊,最难绷的是数组大小开错了TLE还怀疑自己链表有问题,给出提交记录 约瑟夫 , 队列安排 。
\(16:51\) 看了眼NOIP 成绩,哎哎,惨不忍睹,只能说菜就多练,开始下午的训练吧。
\(17:01\) 写了个 后缀表达式 。
\(17:06\) 开表达式的转换 ,但是先吃个饭?
12.7
\(20:17\) 咋水了这么久才开始训练/dk ,无所谓,继续写表达式的转换。
12.8
\(13:44\) 唉唉咋现在才写完 。早上11点多才起,为啥,/jk。先吃个饭
12.9
\(1:29\) 爬起来写点题,唉唉。
\(1:39\) 唐队列 这东西花了十分钟,应该是太黑了看不清键盘吧(
\(1:46\) 本来应该是做 哈夫曼树 的,但是好像这东西太偏了,跳了。
\(1:48\) 开 这东西 。 顺从了,明天再说。
\(23:08\) 复活,诶我是不是又水了一会你谷。
\(1:10\) 顺从了,是不是写假了一直90pts,算了先睡。
12.10
\(11:43\) 闪现到机房,继续写昨晚的题了。
\(11:58\) done 。
\(23:25\) 反思了一下,为什么很多简单题不会做,那就是想的太少了,千万不要想当然。
\(0:04\) ... 。
P.S \(2:41\) 这两道题有个相似的地方,就是对于一个不一定连通甚至可能存在自环的图,且每个点都只有一条出边,这样的题是必定会成环的。
根据环的性质,对于环上任意一点,绕环距离相等,于是我们可以直接在环上更新绕环距离。
这种图的特殊点在于环外链,对于环外链,我们需要借助环上与其相连的直接节点的信息,这就要求我们在更新环外链节点前得先确保环上节点是否已经成功更新环上距离,然后在链上多做加法处理。
虽然是 \(dfs\) ,复杂度却只有 \(O (n)\) ,可以说是非常友好了。
白天的错应该就是因为没有考虑环外链长超过1的部分。
\(0:20\) 忽然想起来我有一本大纲词典,也好,不用到处找题了。
\(0:37\) 感觉自己普及组应该差不多了?,要不要 \(VP\) 一下 \(CSP-J 2024\) ?,我觉得可以。
\(0:43\) 不知道从哪薅来了模拟赛 。 先练练手吧。
12.10 VP CSP-J模拟赛
赛时记录
限时 \(2h\) 。
\(0:49\) 开始 \(VP\) 。
\(0:58\) AT1 。
\(1:32\) AT2 。
\(1:45\) AT4 。
\(2:30\) AT3 。
\(2:30\) done
赛后分析
\(T_1\) 感觉这个结论是显然的,我们对第 \(1\) 个数字进行处理,注意到 \(\lfloor \frac{M}{N} \rfloor\) ,是我们的最优解,而对于第 \(2\) 位数字,\(\lfloor \frac{(M-\lfloor \frac{M}{N} \rfloor)}{N-1} \rfloor\) 是我们的最优解,注意到这一过程能用for完成,done。
贪心证明 既然想让乘积尽量大,那就让后面的数大于前面的,且尽量差距过小,上述选数注意到第 \(K-1\) 位数字一定小于等于第 \(K\) 位数字,且相差不超过1,即为最优解。
\(T_2\) 竟然被 \(T2\) 卡了,难绷。
注意到点与点之间的距离满足不等式
我们暴力枚举边长为 \(2t-1\) 的矩形,找出其中的有效点,取 \(max\) 即可。
\(T_3\) 一个显然的二分题,可能唯一的坑点在于二分的上界并不是 \(l_{min}\) ,而是 \(l_{max}\) ,因为可能小的木棍根本切不出来,大的木棍就足够切了。
P.S 这东西赛时其实没切,才 \(76pts\) 。
\(T_4\) 树形DP,感觉这个真的很显然,没必要讲。
P.S 这东西我赛时竟然想不出DP咋写,废了。
conclusion
\(100+100+76+0=276pts\) 不满意啊,这个分数恐怕在J组也只是堪堪一等的水平,但这可能就是我的水平?
\(3:39\) 这段时间调节策略吧,\(VP\) 一下几场 \(codeforces\) 或者 \(牛客\) 的 \(div2\) 。
12.11-12.12
准确来说是从11号开始的,只不过我一坐下来就开始打比赛了,从 \(23:40\) 到 \(1:40\) 哎哎,累死我了,最难绷的是为啥说要打 \(div3\) 结果打成 \(div2\) 了?
CF
先给个比赛link
conclusion
警示后人,CF没有万能头,我因为这玩意 \(CE\) 了两回。
\(T_1\) 这个数据范围很容易让人想到 \(O(tk^2)\) 的解法,显然暴力枚举 \(check\) 就能过。
\(T_2\) \(Ad-Hoc\) ,注意到一个显然的结论,我们进行操作1的最有效位置是 \(当前已经覆盖长度的两倍*2+2\) ,然后发现可以用预处理加二分求解,复杂度 \(O(tlogn)\) 显然能过。
\(T_3\) 注意到最大值肯定是字典序最小的全排列的贡献,而想要改变这一贡献当且仅当我们使这个序列出现了山谷,那就很简单了,我们每次枚举第 \(i\) 个数,显然放在头和尾是无影响的,除了第一个数外每个数都有 \(2\) 种方法,那最多可能有 \(2^{n-1}\) 个合法排列。
最后进行一个类似倍增的二分模拟,找到对应排列,感觉是道组合数学好题,但是我不会,哎哎。
\(T_4\) 感觉是不是比 \(T_3\) 简单啊,只靠感性理解写了个做法,看正经证明好像挺难的。
\(2:46\) P.S 这次的 \(T_3\) 是经典的 \(constructive\ problem\) 也就是我们说的构造题,只能说多做?,反正我目前对这类题除了打表和丁真没什么办法。至于这把 \(T_4\) 显然太 \(hard\) 了
\(16:51\) 又到机房了,哎哎,这点时间不够 \(VP\) 的,就做道绿看看吧。
\(18:02\) link 。为啥又没做出来(,想法几乎全都假了,哎哎。但是这种 \(trick\) 我应该会的吧(,对于这种类似的最优占位问题,肯定是要把当前的人安排到结束时间最短的位置上,
这一决策是显然的,但是我竟然打算把队列里的数全部减去 \(min\) 然后再向后拓展,最后被卡了半小时,真是菜的不行,此题也是经典的 \(trick\) 逆向思维,队列里的每个值减去队列里最小值, \(ans+min\) 更新收益。注意到最终的 \(ans\) 等价于总耗时最少的舞台,所以我们只需要利用贪心策略最后计算总耗时最最大的舞台即可。
\(23:09\) 开通了博客园 。理论上来说以后应该会选择 \(Luogu\) 或者博客园二者之一作为主要更新平台。
AC
\(23:20\) \(VP\) 牛客练习132 。
\(1:07\) 结束了?,至少把我会做的给做了。
conclusion
\(T_1\) 这个 \(T_1\) 想了十分钟,感觉在速度上还需要提升。
做法:显然边长构成了一个数列为 \(\{a_1,a_2,a_3,a_4,...\}\) ,在排序之前,面积是 \(\frac{\sum_{i=1}^{n-1}a_i+a_{i+1}}{2}=\frac{a_1+a_n}{2}+\sum_{i=2}^{n-1}{a_i}\) ,容易发现对面积改变有贡献的只有头尾两个元素,排序即可,注意无解的情况,复杂度 \(O(nlogn)\) 。
\(T_2\) 题意表述不清,但是赛后看题目本意是挺简单的,简单排序去重,然后双指针优化最长合法区间,复杂度 \(O(nlogn+n)\) 。
\(T_3\) 数学题,蛮简单的,我们很丁真的得到一个结论。
\(T_4\) \(Hard\) 的数学,这东西真 \(Hard\) ,又不会数学,/dk。
\(T_6\) 感觉可做啊,为啥赛时没开,这个预处理打表感觉很显然的。
做法,预处理 \(\sqrt{n}\) 内的毕达哥拉斯三元组,显然本源毕达哥拉斯三元组最多有 \(\sqrt{n}\) 组,完全的毕达哥拉斯三元组数显然小于 \(n\) 组,考虑到 \(T\le 20\) ,完全可以暴力枚举,最后复杂度 \(O(\sqrt{n}+Tn)\) 。
短期 summary
越做越感觉学的不扎实了,从来没有做出自己不应该做的题,而且连二分都没搞懂,哎哎,得去上点课了。
12.13
\(11:52\) 信息老师开机房了,就去吧,红温的是跟着他上了半节 \(Excel\) ,无所谓了,写这个的时候其实已经晚上了,早上切橙好像花了 \(25min\) ?,感觉还行 。
\(23:28\) 开始上课,顺带做做题。
\(0:18\) 太唐了,对拍的时候没注意指数大于 \(9\) 之后就不能直接转 \(char\) 了。
\(0:40\) 上课,切水。
\(0:49\) 发现一道有趣的水,以前是用前缀和做的,但是听说有 \(DP\) 解,蛮惊讶的,谢谢看吧。
\(1:08\) 做了点笔记。
\(1:45\) 明早打算开 [NOIP2017 提高组] 时间复杂度 ,我之前很怕模拟,因为我没法去系统的想一件事,这是不好的,所以当你认为自己算法都学会了但是什么都用不出来,听我的,多练模拟!
12.14
被我给颓废了,哎哎,感觉 \(whk\) 水平持续上升?
12.15
\(12:15\) 哎哎还不知道要不要写题,先把物理补了吧。
\(18:54\) 打个这个牛客周赛round72 ,不知道能多少。
\(21:19\) 复活,省流 \(100+100+70+100+0+0\) ,为啥死磕 \(T_3\) ? 我 \(NOIP\) 的教训还没忘掉吗?
AC
\(T_1\) 唐题不讲
\(T_2\) 注意到连通块长度决定贡献且可以预处理
\(T_3\) 分讨小模拟
\(T_4\) 很典的 \(trick\) ,注意到我们可以从后往前扫描字符串,更新离当前位置最近的相同字符和不相同字符的位置,然后将当前点与两位置建边,反向建边,复杂度 \(O(n)\) ,然后跑一遍 \(Dijkstra\) 。
12.16-12.21 冬至
\(12.17,00:27\) 好像啥也没干?见了学弟 。
\(12,17:00:38\) 放松一下,开个时间复杂度。
\(12,17,3:26\) done 。
\(The\ rest\ of\ time\) 应付月考ing
12.22
\(0:27\) 复活,打算写点题?
\(9:38\) \(1\)
\(9:42\) \(2\)
\(9:44\) \(3\)
\(10:13\) \(4\)
\(10:34\) \(5\)
\(11:02\) \(6\)
\(12:07\) \(7\)
\(12:54\) \(8\)
\(18:23\) \(9\)
\(20:58\) \(10\)
\(21:55\) \(11\)
\(22:23\) \(12\)
\(00:14\) \(13\)
\(00:45\) \(14\)
\(01:09\) \(15\)
\(01:30\) \(16\)
\(01:49\) \(17\)
\(01:53\) \(18\)
12.23 农历生日
\(15:35\) 到达机房,刚刚好老师也在,应该可以写两节课多。
\(15:58\) 老师要上公开课,匆匆忙忙写了 一题 。
12.24 圣诞节
\(0:28\) 打算先写个红再睡。
\(0:30\) done 。
\(11:37\) 到达机房。
\(11:43\) done
\(22:30\) 到家,吐槽 jb 老师给我一起控屏了。
\(23:22\) 有意思的橙题 。
\(23:47\) 数学题 。
\(23:48\) 水题 。
\(23:51\) 水题 。
\(00:09\) 有意思的数学题 。
\(01:10\) 没做出来的CSPJ2023-T1 。
12.25-12.26
\(23:10\) 切一道回文 。
\(23:50\) 被唐题硬控 。
\(23:56\) 好题 。
\(00:13\) 水题 。
\(00:26\) 模板记错的欧拉筛 。
\(00:28\) 不错的枚举优化题 。
\(00:32\) 模拟 。
\(00:43\) 水模拟(似乎正解应该是全排列?) 。
\(01:00\) 水模拟 。
\(01:08\) 切水 。
\(01:10\) 水 。
\(01:11\) 水回文 。
\(01:12\) 水排序 。
\(01:14\) 读题 Hard 的水 。
\(01:18\) 简单模拟 。
\(01:22\) 水 。
\(01:38\) 没切过的水 。
\(01:41\) 还行的模拟 。
\(01:42\) 显然贪心 。
\(01:46\) 占座贪心 。
\(01:47\) 水 。
\(01:48\) 水 。
\(01:49\) 有意思 。
\(01:51\) 水 。
12.27
\(00:09\) 被抄写硬控到现在,顺从了。
\(00:22\) 开始写题。
\(00:33\) 题目看错了,但好在 \(10min\) 内解决了一道橙,不算太丢脸。 搜索 。
\(00:42\) 又是 \(10min\) 搜索 。
\(01:18\) 爸妈查房,紧急离开电脑,只能手机做了 搜索 。
\(11:40\) 到机房,信息老师说就上一会,表示不信。
\(12:05\) 被这种 细节题 硬控,注意思考要双向思考。
\(12:08\) 之前做过的水 。
12.28
\(20:05\) 开始写题。
\(20:18\) \(1\) 。
\(22:22\) 去看了看群 \(u\) 的蓝桥杯,顺便切了个 \(T_2\) ,估计黄差不多吧。
\(22:33\) \(2\) 。
\(22:42\) \(3\) 。
\(22:46\) \(4\) 水到没有做的欲望。
\(23:21\) \(5\)
\(22:55\) \(6\) 。
\(23:21\) \(7\) 。
\(23:40\) \(8\) 。
\(23:48\) \(9\) 。
\(00:21\) 顺带练了一下 Hash 。
\(00:26\) \(10\) 。
\(01:33\) \(DP\) 。
12.29
\(16:42\) DP 。
\(下午\) 打了场比赛,切了 \(T_1\) 和 \(T_2\) ,好久没场切 绿 了啊。
12.30
\(22:12\) 到家准备开始写题。
\(22:59\) LIS 。
\(23:10\) DP 。
\(23:13\) 经典过河卒 。
\(23:15\) 吃个外卖。
\(00:37\) DP 。
\(00:44\) DP 。
\(00:49\) DP 。
\(00:59\) DP 。
\(01:17\) DP 。
\(01:30\) DP 。
\(01:46\) DP 。
\(02:05\) DP 。
\(02:27\) DP 。
\(02:32\) DP 。
12.31
\(19:19\) 玩了一会,准备开始写题。
\(20:37\) Done 。
\(21:46\) DP 。
\(22:09\) 背包 。
\(22:11\) 双倍经验 。
\(22:57\) DP 。
\(23:12\) DP 。
2025.1
1.1 元旦
新年快乐!
\(00:51\) 嗨完了,打算写点题。
\(01:22\) 新年第一题兼DP 。
\(01:49\) DP 。
\(01:56\) DP 。
\(11:10\) DP 。
\(11:31\) DP 。
\(11:44\) DP 。
\(12:10\) DP 。
\(12:20\) DP 。
\(13:36\) DP 。
\(16:33\) DP 。
\(16:40\) DP 。
\(16:44\) DP 。
\(16:46\) DP 。
\(17:24\) DP 。
\(17:38\) DP 。
\(17:42\) DP 。
\(19:43\) 图论 。
\(20:28\) 图论 。
\(21:09\) 图论 。
\(21:17\) 图论 。
\(21:19\) 图论 。
\(21:35\) 图论 。
\(21:53\) 图论 。
\(21:53\) 下机。
解决完 J组T2 。
1.2-1.20 半AFO的时光 连载一个月
期末考。
\(1.3\) 庆祝 半AFO的时光 连载一个月。
\(1.3.11:39\) 信息课。
\(1.3.11:46\) 黄队列 。
\(1.3.11:55\) 黄队列&单调窗口 。
\(1.3.12:06\) 黄队列 。 、
\(1.3:17:57\) 只打算今晚写一些题。
\(1.3.18:16\) 黄栈 。
\(1.3.19:02\) 绿单调栈 。
\(1.3.19:11\) 黄单调栈 。
\(1.3.19:32\) 黄前缀和 。
\(1.3.19:43\) 二维差分+前缀和 。
\(1.3.20:20\) 黄二分 。
\(1.3.20:50\) 没做出来的黄二分 。
\(1.3.20:58\) 黄二分 。
\(1.3.21:10\) 黄二分 。
\(1.3.21:13\) 黄二分 。
\(1.3.21:15\) 黄二分 。
\(1.3.22:32\) 黄模拟 。
\(1.3.22:47\) 黄模拟 。
\(1.4.0:34\) 黄模拟 。
\(1.4.0:50\) 黄模拟 。
\(1.14\) 来机房,摸摸鱼。
1.21
\(18:28\) 复活。
\(19:48\) 听 Red 佬的,开始做蓝紫了。
\(22:21\) 蓝 。
\(00:48\) 蓝 。
1.22
\(21:08\) 开始写题。
\(22:30\) 蓝 。
1.23
\(17:41\) 准备写题。
\(21:08\) 蓝 。
\(23:56\) 蓝 。
1.24
\(01:17\) 蓝 。
\(01:17\) 蓝 。
\(02:00\) 蓝 。
\(09:41\) 蓝 。
\(15:05\) 蓝 。
\(16:40\) 蓝 。
\(17:32\) 蓝 。
\(18:08\) 蓝 。
\(18:26\) 绿 。
\(19:14\) 构造绿 。
\(19:23\) 蓝 。
\(20:24\) 蓝 。
\(23:58\) 蓝 。
1.25
\(10:52\) 绿 。
\(17:30\) 蓝 。
\(21:46\) 绿 。
\(23:27\) 蓝 。
1.26
\(01:54\) 绿 。
\(02:01\) 绿 。
革新 \(1.27\)
从今日起,半AFO的时光将以知识点的形式分布。
\(12:05\) P4180 [BJWC2010] 严格次小生成树 。
\(18:11\) P1407 [国家集训队] 稳定婚姻 。

浙公网安备 33010602011771号