2023.9.24 若干数学题
CF645F
我们可以计算这样的函数 \(F(x)\) 表示 \(\gcd\) 是 \(x\) 的倍数有多少个 \(k\) 元组。
设 \(x\) 的倍数有 \(cnt_x\) 个数,那么 \(F(x)=C_{cnt_x}^k\)。
根据莫反,\(f(x)=\sum_{x|d} F(d)\mu (d/x)\)
\(Ans=\sum xf(x)=\sum_{x=1}^n x \sum_{x|d} \mu(d/x)\times C_{cnt_d}^k\)
枚举 \(d\),\(Ans=\sum_{d=1}^n C_{cnt_d}^k \sum_{x|d} \mu(d/x) x\).
观察到 \(\sum_{x|d} \mu(d/x) x= \varphi(d)\),可以直接预处理。
且每次加入一个数,最多带来 \(\sqrt x\) 个 \(cnt\) 的改变,直接暴力维护,复杂度 \(O(n\sqrt n)\).
CF724G
首先对异或线性基在图上的题势必要找环,把环的异或权值放进线性基 \(B\) 里。
任意一条路径可以通过与任意环的权值异或起来得到新的路径。
我们先从任意一个点开始做搜索树,求出任意点到根节点的路径权值异或和 \(d_u\),
这样就形成了 \(u\sim v\) 的一条路径 \(d_u\otimes d_v\).
那么我们要统计的是 \(d_u\otimes d_v\otimes B\) 的和。
直接统计是难的,不如拆位。
设线性基里有 \(s\) 个元素。
考虑答案第 \(w\) 位的贡献。
若线性基中已经存在 \(w\) 这一位,那么无论 \(d_u\otimes d_v\) 的值都有 \(2^{s-1}\) 条路径,
使得这一位是 \(1\),故贡献为 \(2^w \times 2^{s-1}\times n(n-1)/2\).
若没有 \(w\) 这一位,那么 \(d_u,d_v\) 中必须恰有一个 \(w\) 位是 \(1\),
故贡献为 \(2^w\times 2^s\times (cnt_w)(n-cnt_w)\)
CF1034C
首先有这样的结论:如果我们要把图分成 \(k\) 份,那么要么不可分,要么只有一种分法。
设子树的和为 \(s_x\) ,分成 \(k\) 份,必然有 \(k=\sum [s_x\bmod k=0]\),且必须恰好等于。
求 \(\sum [s_x\bmod k=0]\),只需要计算 \(s_x\) 对哪些有贡献即可。
设 \(f(k)\) 表示可否能分成 \(k\) 份,若 \(k=\sum [s_x\bmod k=0]\)那么,那么 \(f(k)=1\).
最后有,\(f(k)=\sum_{t|k} f(t)\)。
CF1603D
先推式子:\(c(l,r)=\sum_{d=l}^r \sum_{i=l}^r \sum_{j=i}^r [\gcd(i,j)=d]\).
\(=\sum_{d=l}^r \sum_{i=l/d}^{r/d} \sum_{j=i}^{r/d} [\gcd(i,j)=1]\)
由于 \(l<d\),原式 \(=\sum_{d=l}^r \sum_{i=1}^{r/d} \sum_{j=i}^{r/d} [\gcd(i,j)=1]\)
\(=\sum_{d=l}^r \varphi(r/d)\),这个东西可以整除分块来搞,单次复杂度 \(\sqrt r\).
观察到如果 \(k> \log n\),答案即为 \(n\),因为可以这样构造:\(1,2\sim 3,4\sim 7,8\sim 15...\).
我们考虑计算 \(f_{i,k}\) 代表前 \(i\) 个数分了 \(k\) 段的最小值。
那么有 \(f_{i,k}=\min_{j<i} f_{j,k-1}+C(j+1,i)\).
打表发现其具有决策单调性,那么可以优化,如果用写二分队列写法,
复杂度 \(O(n\log^2 n\sqrt{n})\)。 但是由于整除分块严重跑不满,所以这是能过的。

浙公网安备 33010602011771号