2023.4.10

太菜了。

T1

\[\sum_{L\le a\le b\le R}\lbrack b\space mod\space a=b\space xor\space a\rbrack \]

值域 \(1e18\) .

枚举余数能得到 \(\lfloor\frac{b}{a}\rfloor=1\) .

那么 \(b-a=b\space xor\space a\) .

推得 \(a\le b<2a,a\in b\) .

\(b,a\) 二进制的第一位相同。

然后数位dp。

\(f[i][0/1][0/1][0/1]\) 表示位数,当前最高位,\(b\le R\)\(a\ge L\) .

记忆化搜索,复杂度 \(O(8\times log\space V)\) .

就是不太会写。

T2

一个联通无向图,一些边只能走一次,其他不限,问能不能遍历这些边。

值域 \(2e5\) .

先去掉限制的边,那么剩下的连通块可以各自视为一个点。

问题就是判定欧拉路径。

直接暴做丢了多条欧拉路径的一档部分分。

T3

[ABC248G] GCD cost on the tree

点分治简单题。

没调出来保灵了。

书上背包复杂度是 \(O(n\times128)\) ,这个是 \(\max_{i=1}^{1e5}d(i)\) ,队爷讲的没听懂。

可以用欧拉反演,枚举 \(d\) ,保留为 \(d\) 倍数的点,树形dp做所有连通块的 \(size\) 之和。

只用求 \(\sum\limits_{d}size\times\varphi(d)\) 即可,一个点只遍历 \(128\) 次,复杂度同上。

\(25+69+0=95\) .

谔谔。

posted @ 2023-08-06 19:53  SError  阅读(10)  评论(0编辑  收藏  举报