摘要:
狄利克雷卷积:\((f*g)(n)=\sum_{d|n}f(d)\times g(\dfrac{n}{d})\)。两积性函数的狄利克雷卷积还是积性函数。 数列的卷积:\((a*b)_n=\sum_{i=1}^n a_i\times b_{n-i+1}\)。 数列的二项式卷积:\((a*b)_n=\s 阅读全文
摘要:
传送门 如果一个排列 \(P\) 满足对于所有的 \(i\) 都有 \(|P_i-i|\neq k\),则称排列 \(P\) 为合法的。现给出 \(n\) 和 \(k\),求有多少种合法的排列。 由于答案很大,请输出答案对 \(924844033\) 取模的结果。 \(2\leq n\leq 2\t 阅读全文
摘要:
传送门 题意:给定两个数组 \(a_i,b_i\),若 \(a_i\le b_j\),则他俩可配对。求极大匹配的方案数。(极大不是最大,最大一定是极大) 先考虑最大匹配方案数怎么求。 把 \(a\) 和 \(b\) 从小到大排序。则每个 \(a_i\) 能匹配的 \(b\) 都是一段后缀,且随着 \ 阅读全文
摘要:
前四题水。 G 时限五秒,两只 log 都能过。 建线段树,每个结点上面存一个 multiset,包含所有作用到这个结点区间上的修改。 删除直接找到对应 multiset 删除即可。 阅读全文
摘要:
左偏树是一种可并堆(一系列的堆),支持以下操作: 删除一个堆的最值。 查询一个堆的最值。 新建一个堆,只包含一个元素。 合并两个堆。这个复杂度是 \(O(\log)\) 的。 左偏树是一颗二叉树。定义 “外结点” 为儿子数量不等于 \(2\) 的结点,定义每个结点的 \(dist\) 为该结点到最近 阅读全文
摘要:
只做了 A,成功被 sb 错误卡住。 A 每次挑最右边的左移。 B 每次一定是优先向最近的怪物打,打完一个打下一个最近的。 子弹不一定只能打两个怪物,所以打的时候用循环判断子弹是否打完。 C l = r 不行 否则考虑全 1 再把所有 \(c_i=1\) 的都 +1,这需要 \(cnt1[r]-cn 阅读全文
摘要:
CF10E 题解 翻转 性质:如果翻转的区间所有数对个数为偶,则整个逆序对个数奇偶性不变;否则改变。 证明:首先翻转区间外的逆序对个数不会变化,翻转区间与翻转区间外的逆序对个数也不会变化。 假设翻转前翻转区间内有 \(cnt\) 个逆序对,则翻转后有 \(len\times (len-1)/2-cn 阅读全文
摘要:
无向基环树找环,遍历模板: #include <bits/stdc++.h> using namespace std; typedef long long ll; const int inf = 0x3f3f3f3f; int n; vector<int> e[500005]; bool vis[5 阅读全文
摘要:
【根号分治】 例题:等差数列加 给定一个长度 \(n\) 的数列,初始全都是 0。(\(n\leq 2\times 10^5\)) 要求支持两种操作: \(1\;x\;y\;d\),表示把所有下标模 \(x\) 等于 \(y\) 的位置全部加上 \(d\); \(2\;x\),表示查询 \(a_x\ 阅读全文
摘要:
一道练习贪心证明的好题。 绝大多数题解只是点出了以下结论: 要么最快的带最慢的;要么最慢的带次慢的。 并没有给出证明。我就补上这个证明。 为了证明这个贪心结论,我们先证明几个引理。 引理一:每次将火把带回来的,一定是对岸最快的。 引理一证明:如果回来的不是对岸最快的,让对岸最快的人代替这个回来的人的 阅读全文