摘要:
方便起见,之后的分析中认为 \(n,m,q,\sum|s_i|\) 同阶。 点分治,对于一个询问 \((i,j,k)\),我们在第一次劈开的位置 \(rt\) 计算。那么路径 \(i\to j\) 会被拆成 \(i\to rt\to j\)。同时,贡献也被拆成三种: \(s_k\) 在 \(i\to 阅读全文
摘要:
其实是场上的想到的做法,但是当时被卡 corner case 了 QaQ。 注意到,我们其实可以 \(O(1)\) 次 query 求出 \(x\) 和 \(y\) 的距离。具体地,我们再找三个点,现在有 \(5\) 个点,\(10\) 个距离,而我们又可以 query \(10\) 次,正好可以解 阅读全文
摘要:
如果我们知道了每个数的出现次数 \(cnt\),那么用这些数重排成序列的方案数是组合数连乘。根据 Lucas 定理的结论,重排方案数为奇数当且仅当 \(cnt\) 加和不进位。也就是说,每个不为 \(0\) 的 \(cnt\) 把 \(n\) 的所有为 \(1\) 位划分为若干个集合。 又因为题目限 阅读全文
摘要:
考虑 \(dp_{i,v}\) 表示以 \(i\) 为根的子树,\(i\) 的权值为 \(v\) 的方案数。 但是这个 dp 不好转移,因为 MEX 不是很好表示。但是如果只考虑子节点中的非叶子节点,那么 MEX 是 \(O(\sqrt n)\) 的,这个可以接受。 考虑阈值分治,把 \(deg\l 阅读全文
摘要:
厉害题 QwQ 阅读全文
摘要:
不妨先建出一棵 dfs 树,然后给每个点标号。那么现在就是要确定所有非树边的端点。 对于每条非树边,不是很好直接区分出其端点的编号。但是可以跑多轮,每轮将端点划分到某个集合,最后通过每一轮的信息推出端点。 可以考虑三进制拆分,第 \(i\) 轮每个点颜色为其第 \(i\) 位的值。 于是可以求出每条 阅读全文
摘要:
把问题改写成在网格图上走,一个红球或蓝球对应了网格图上的一条边。最后只要把答案除以 \(\dbinom{n+m}{m}\) 即可。 价值 \(\times 2\) 不好表示,考虑把带 \(2^c\) 倍价值的球看成一个球 和 \(2^c-1\) 个“复制品”。每次使用道具相当于将每个球都复制一遍。 阅读全文
摘要:
来源是 yxh 三个月前的讲课。 阅读全文
摘要:
不妨把 \(a\) 排序。 考虑一个特殊情况:\(a_1=a_2=\cdots=a_{n-1}=0\),\(a_n=x\)。不妨设此时答案为 \(F(n,x)\)。 可以递归把 \(a_2,a_3,\cdots,a_{n}\) 全部变为 \(\dfrac{x}{n-1}\),然后全部取相反数后就是相 阅读全文
摘要:
注意到 \(1\) 到一个 \(b\) 子树内的点 \(x\) 的路径可以拆成 \(1\to p\to q\to x\) 的形式,其中 \(1\to p\) 走树边,\(p\to q\) 为在点 \(p\) 从树边走出去,在点 \(q\) 走回来,然后 \(q\) 再走树边走到 \(x\)。 考虑 阅读全文