摘要: prologue 建议大家特别关注自己新建完长度那个数组,我用错然后调了 20min。(代码 5min,调试 20min 的屑。( analysis 观察题目,抛去所有条件,发现本质是让我们用一堆数字去拼凑数字,然后找到最大的一个拼凑不成的数字。很符合同余最短路的模板样子,所以我们就开始往同余最短路 阅读全文
posted @ 2023-10-06 14:59 carp_oier 阅读(31) 评论(0) 推荐(1)
摘要: 递归式学习的产物( 阅读全文
posted @ 2023-10-06 10:46 carp_oier 阅读(169) 评论(2) 推荐(0)
摘要: 内含一种O(1)查询LCA的方法,给之后淀粉树做铺垫? 阅读全文
posted @ 2023-10-06 09:05 carp_oier 阅读(77) 评论(0) 推荐(0)
摘要: prologue 树状数组推荐写法,感谢巨佬樱雪喵的教学。 inline int lowbit(int x) { return x & -x; } inline void add(int x, int c) { for(; x <= n; x += lowbit(x)) tr[x] += c; } 阅读全文
posted @ 2023-10-04 18:17 carp_oier 阅读(45) 评论(0) 推荐(0)
摘要: 加分二叉树 我们可以枚举中间这个 k 的位置,然后分别递归计算左右子树,这就让我们想到这是一个和区间有关的,我们可以用区间dp来解决。 \(f[i][j]\) 表示 i, j 这个区间的最大分值。用一个很板子的区间dp就可以解决了。 至于求前序遍历,我们也只需要通过递归然后枚举中间的根,第一个满足最 阅读全文
posted @ 2023-10-02 22:37 carp_oier 阅读(22) 评论(0) 推荐(0)
摘要: 合唱队形 正反分别求一遍最长上升子序列,然后枚举中间的最高点,计算出来队列里面的最多人,然后就可以知道需要出列的最少人。 过河 tips:两个互质的数字 p,q,他们所不能拼出来的最小的数字是 \((p-1)(q-1) - 1\)。 我们可以用 \(f[i]\) 表示经过长度 i 之间,我们所踩石头 阅读全文
posted @ 2023-10-02 21:01 carp_oier 阅读(16) 评论(1) 推荐(0)
摘要: T1 大水题,用位运算更加便捷求解。 T2 看出来有环了,但是没往基环树上想,寄。 暴力分,有部分分是基础树,可以跑一遍深搜,根节点的选择是 k 种颜色,剩下的是 k - 1 种颜色。还有暴力是可以二分图染色做出来的。 正解,我们对于一个环上的操作,可以用递推式子求出来。f[0][i], f[1][ 阅读全文
posted @ 2023-10-01 16:43 carp_oier 阅读(23) 评论(0) 推荐(0)
摘要: prologue 还是太菜了,这个 154 行的树剖 20min 才敲完。 analysis 首先,处理这个给到我们的这个式子。 \[\max(| a _ u + a _ v |, | a _ u - a _ v |) \]我们可以分类讨论: \(a > 0, b > 0\): 显然 \(a + b 阅读全文
posted @ 2023-09-30 21:45 carp_oier 阅读(25) 评论(0) 推荐(0)
摘要: prologue 这个题这么水的一个板子题。 analysis 这个题目我们正反建两条边,在跑欧拉回路的时候,看这个边是不是被走过,走过就不走,跳过这个边。如果没走,就走这条边并且标记这个边走过了。 code time #include <bits/stdc++.h> using namespace 阅读全文
posted @ 2023-09-27 15:03 carp_oier 阅读(63) 评论(0) 推荐(0)
摘要: prologue 看见题解区好多神犇都是用 网络流 来做的,但是蒟蒻在刚学完 二部图 之后就来刷题了,对于这个题的路径输出有一个 比较新颖 的搞法,所以说就来写了这篇题解。 analysis 首先,我们为了将它转换成为一个 二部图,我们需要对它进行拆点操作(其实最后我跑起来并没有拆点),然后对它进行 阅读全文
posted @ 2023-09-26 20:59 carp_oier 阅读(91) 评论(0) 推荐(1)