08 2021 档案
摘要:link 又是喜闻乐见的推式子环节。 以下令 \(n\le m\)。 \(ans=\sum_{i=1}^n \sum_{j=1}^m \mathrm {lcm}(i,j)\) \(=\sum_{i=1}^n \sum_{j=1}^m \frac {i\times j}{\gcd(i,j)}\) \(
阅读全文
摘要:首先 \(10^{100} s\) 后所有情况都会出现。因为 \(2*lcm(1,2,..50)\le 10^{100}\)。 令当前时间为 \(t\),则序列 \(i\) 取的到 \(j\) 需满足的条件为:\(t\equiv place_j \pmod {len_i}\)。(\(len_i\)
阅读全文
摘要:早就学了,复习一下。 普通 \(\mathcal {O}(log_2(n))\) 的快速乘(龟速乘): LL QT(LL x, LL y) { LL ans = 0; for(; y; y >>= 1) { if(y & 1) ans = (ans + x) % n; x = (x + x) % n
阅读全文
摘要:D 逆向思维,考虑一条边被多少条路径作为答案。 很套路吧,想到每次找到图中最大的边,断开,它的贡献为两边联通块的大小相乘再乘它的权值。反着来,每次用最小的边连接两个块,用并查集维护。 #include <cstdio> #include <algorithm> #include <cmath> #i
阅读全文
摘要:以下 \(p\) 为模数,\(x\) 为我们要求逆元的数。 最直接的是利用费马小定理,$x^{-1}\equiv x^{p-2}(mod\ p)\(是,时间复杂度:\)\mathcal {O}(nlog_2(n))$。 这里有两个线性做法: 令 \(p=ax+b\),则 \(ax+b\equiv 0
阅读全文
摘要:来看以下例题:令 \(a_i\) 为 \(\sum_{j \subsetneq i}a_j\)。你会说,这简单啊,枚举子集直接 \(\mathcal O(3^n)\)。 好的,有没有什么更优秀的算法呢?引入高维前缀和。就比如我们要求一个三维的前缀和,需要写一个比较长的容斥式,并且扩展到多维转移的时间
阅读全文

浙公网安备 33010602011771号