10 2024 档案
摘要:思路 考虑前缀和时每一位的贡献是什么。 对于一个生成函数 。 对其作 次前缀和,函数会变成: 那么其 次项系数: \[\begin{align} &=[x^n](\frac{1}{1-x})^kF(x)\no
阅读全文
摘要:一点不会套路。 思路 对于中位数相关,发现我们不好直接表示与中位数有关的内容。 不妨枚举 ,把大于 的标为 ,小于等于 的标为 ,这样把所有最终为一的方案数加起来就是原来的答案。 大概是这样一个东西: \[k=\sum_{i=0}^k [i<k]
阅读全文
摘要:赛时被创四了。 思路 考虑我们什么时候合并会比原来优。 例如,我们现在要合并 和 ,同时保证, 。 那么有: \[\frac{p_1}{100}\times w_1\le \frac{p_1}{100}\times \frac{
阅读全文
摘要:一个很套路的做法。 思路 题目要求走完整个树的时间,这并不好算,容易想到 min-max 容斥。 依据 min-max 容斥,我们可以轻松把它转化成第一次走到所有子集的时间。 考虑在这道题中,有什么特殊的。 第一,任何包含根节点的子集答案都是零。 第二,由于我们只关心第一次走到的点的时间,因此假如一
阅读全文
摘要:思路 由于它要求 数量相等,我们可以考虑站在前缀和的角度看待这个问题。 我们将 看作负一, 看作一。 可以把它化成一个折线图(方便观察)。 观察一下它的操作实际上在干什么。 容易发现,在折线图上,我们把操作的 的整段折线 reve
阅读全文
摘要:唐唐题。 思路 容易发现,我们只要知道了一条边总共经过了多少次(不计方向),我们就可以跑欧拉回路。 如何求一条边经过多少次。 网格总共有十二条边。 但是只有九个点。 我们可以列出九个方程。 具体来说,每个点的经过次数的两倍就是每一条边的访问次数。 这样列出来的方程有一个是无用的。 所以只有八个不同的
阅读全文
摘要:第一次写拉格朗日反演。 思路 考虑如何操作。 发现出根节点外有 个点是一。 由于我们只能操作 次,相当于每一次操作必须把两个一合并。 一个点最多往上跳两层,所以要求它的父亲或者爷爷是一。 考虑设 表示当前节点为一并且整个子树总和为 的方案数
阅读全文
摘要:感觉看到交换就应该要想到逆序对。 思路 一个前置小知识,我们把一个排列用相邻交换复原的最小次数是逆序对数量。 考虑没有 ox 的情况。 我们顺着扫一遍字符串。 把左括号正一,右括号看作负一,当前缀和小于零以后,我们把后面最近的左括号提过来,这样可以构造出交换次数最少的合法括号串。 假如有了 ox 怎
阅读全文
摘要:不算难的一道题。 思路 考虑原图是一个基环树。 首先在树上部分的路径是固定的,我们没有办法抉择。 唯一需要考虑的是在环上的那一部分。 在环上我们每一个路径有两种选择。 如何考虑到所有情况。 我们每一次断掉环上的一条边。 这样每一个路径就变成固定的了。 我们只需要快速计算贡献就可以。 贡献形如一个区间
阅读全文
摘要:智慧题。 思路 考虑第二种操作。 我们会想到,我们可以先把所有牌转化成第一种牌。 即: 这就是第一种牌的数量。 然后考虑,我们可以将第一种牌转化为第一种牌,花费的代价为: \[g=(\prod_{i
阅读全文
摘要:非常好题目,使我代码旋转。 思路 考虑什么样的边有贡献。 我们首先提出原图的一个 dfs 树。 处理出经过关键点的树上路径在每一条树边的经过次数 。 我们选点会有以下几种情况。 选两条割边 ,由于割边肯定是树边,所以答案就是 。 选一条只被一条非树边
阅读全文

一言
我从不猜测,那是破坏思维的坏习惯。
—— 福尔摩斯探案集