摘要:
题意 "题目链接" Sol 直接在线段树上二分 当左右儿子中的一个不是$x$的倍数就继续递归 由于最多递归到一个叶子节点,所以复杂度是对的 开始时在纠结如果一段区间全是$x$的两倍是不是需要特判,实际上是不需要的。 可以这么想,如果能成功的话,我们可以把那个数改成$1$,这样比$x$大的数就不会对答 阅读全文
摘要:
题意 "题目链接" Sol 树形依赖背包板子题 树形依赖背包大概就是说:对于一个点,只有选了它的父亲才能选自身 把dfs序建出来,倒过来考虑 设$f[i][j]$表示从第$i$个节点往后背包体积为$j$的最大价值 转移的时候,只有选了该点才能从子树中转移而来 $f[i][j] = max(f[i + 阅读全文
摘要:
题意 "题目链接" Sol 神仙二分Orz 首先二分一个答案,表示假设询问的位置为$x$,把$ = x$的看成$1$,$ define Pair pair define MP(x, y) make_pair(x, y) define fi first define se second using n 阅读全文
摘要:
今天刚学的东西,简单记一下 多项式系数 对于多项式$(x_1 + x_2 + x_3 + \dots + x_k) ^n$的展开式中$x_1^{d_1}x_2^{d_2}x_3^{d_3} \dots x_k^{d_k}$这一项(满足$d_1 + d_2 + d_3 + \dots + d_k = 阅读全文
摘要:
题意 "题目链接" Sol 按照dls的说法,一般这一类的题有两种思路,一种是枚举一个点$M$,然后check它能否成为答案。但是对于此题来说好像不好搞 另一种思路是枚举最小的区间长度是多少,这样我们把所有区间按长度排序后可以二分出满足条件的最短的区间长度 观察后不难发现,较长区间的长度一定是随着短 阅读全文
摘要:
题意 "题目链接" Sol Get到了这题树状数组的做法,感觉非常nice 区间加:直接差分 区间求和:考虑每一位的贡献 $sum_{i = 1}^x (x+1 i) d_i$ $= sum_{i = 1}^x (x+1)d_i \sum_{i = 1}^x id_i$ $= (x+1) sum_{ 阅读全文
摘要:
题意 "题目链接" Sol 设$sum[i]$表示$1 i$的异或和 首先把每个询问的$x \oplus sum[n]$就变成了询问前缀最大值 可持久化Trie树维护前缀xor,建树的时候维护一下每个节点被遍历了多少次 注意设置好偏移量,不然询问区间为$[1, 1]$的时候可能挂掉 cpp incl 阅读全文
摘要:
题意 "题目链接" Sol 首先维护出前缀xor和后缀xor 对每个位置的元素插入到Trie树里面,每次找到和该前缀xor起来最大的元素 正反各做一遍,取最大。 记得要开log倍空间qwq。。 cpp include using namespace std; const int MAXN = 4e5 阅读全文
摘要:
简单的介绍一下吧,斯特灵数其实有很多好玩的性质和扩展的。 定义 设$S(n, m)$表示把$n$个 不同的球 放到$m$个相同的盒子里,且不允许盒子为空的方案数 称$S$为第二类斯特灵数 计算方法 递推: 考虑第$n$个球放到了哪里 第一种情况是自己占一个盒子,方案为$S(n 1, m 1)$ 第二 阅读全文
摘要:
~~无视标题,从我做起~~ update in 2018.10.1: 补充了"至多为1的四中情况" 这玩意儿的官方名字应该是叫"Twelvefold way",共用12种情况。 球异,盒同 不空 该情况为经典的 第二类斯特灵数 设$f[n][m]$表示答案。 $f[n][m] = f[n 1][m 阅读全文