04 2022 档案

摘要:D. Cyclic Rotation 听说很多人赛时都被这道题卡了。。感觉并不难想啊。。 逆向思考,原题意相当于如果存在 \(b[i] = b[i-1]\) ,则 \(b[i]\) 可以放在前方任意一个位置,然后这题就做完了。。 具体做法的话先统计 \(b\) 数组中哪些数可以放前排去,然后开双指针 阅读全文
posted @ 2022-04-26 22:01 FoXreign 阅读(38) 评论(0) 推荐(0)
摘要:E. Magic Stones 难点主要在想到用差分做。。 设 \(d\) 为 \(c\) 的差分数组,由 \(c′_i = c_{i+1} + c_{i−1} − c_i\) 移项可得: \(c′_i + c_{i−1} = c_{i+1} − c_i\) 因此对 \(c_i\) 进行一次操作相当 阅读全文
posted @ 2022-04-22 12:56 FoXreign 阅读(41) 评论(0) 推荐(0)
摘要:C - ThREE 先考虑如果是一条链怎么做,直接模三分类填就行 现在转换到树上,那不妨先对整棵树红蓝交替染色,假设最终红蓝点个数分别为 \(Rnum\) 与 \(Bnum\) , \(1 \sim n\) 模 3 余 1、2、0 的个数分别为 \(n_1\) 、 \(n_2\) 、 \(n_3\) 阅读全文
posted @ 2022-04-22 12:42 FoXreign 阅读(53) 评论(0) 推荐(0)
摘要:D. Optimal Partition #include <bits/stdc++.h> #define IOS \ std::ios::sync_with_stdio(false); \ std::cin.tie(0); \ std::cout.tie(0); using ll = long l 阅读全文
posted @ 2022-04-22 12:38 FoXreign 阅读(40) 评论(0) 推荐(0)
摘要:F. DIY Garland 有一棵含 \(n\) 个节点的树,编号为 \(i\) 的点权值为 \(2^i\) ,规定一条边的权值为这条边连接的两个点中深度较大的点的子树的点权之和。 给定按边权由大到小排序后,每条边深度较浅的点的编号。现要构造原树,输出根及连边情况。 一开始在纸上画了画推出了几个结 阅读全文
posted @ 2022-04-19 22:06 FoXreign 阅读(38) 评论(0) 推荐(0)
摘要:更新于 2022.9.11 全源最短路径 Johnson 算法 打 ABC 时遇见的新玩意,大意就是对于 SPFA 与 Floyd 不能满足的负权图,先通过势能函数将边权转化为非负数再跑 Dijstra ,难点在于势能函数的建立与求解。 简略证明: 设 $w(u,v)$ 为边 $(u,v)$ 的边权 阅读全文
posted @ 2022-04-16 17:54 FoXreign 阅读(83) 评论(0) 推荐(0)