摘要:
题目大意:一个有 个元素的集合有 个不同子集(包含空集),现在要在这 个集合中取出若干集合(至少一个),使得它们的交集的元素个数为 ,求取法的方案数,答案模 。 为表述方便,不妨设这 个元素分别为 \(1\sim 阅读全文
摘要:
题意 给出一张 n 个点的无向连通图和一个常数 k。 你需要解决以下两个问题的任何一个: 找出一个大小为 的独立集。 找出一个大小不超过 k 的环。 独立集是一个点的集合,满足其中任意两点之间在原图上没有边直接相连。 可以证明这两个问题必然有一个可 阅读全文
摘要:
嘛,这个东西虽然叫时间线段树,但是和线段树好像关系并不大,只是借用了一下线段树的结构。 算法介绍 这个算法是用来解决这类问题的:每个操作只在一段时间内生效,然后询问某个时间点所有操作的贡献。 于是我们考虑离线,对整个时间序列建一个线段树,每次操作相当于是在这个线段树上进行了区间修改,所以我们可以利用 阅读全文
摘要:
考虑当这个东西是一条链的时候我们该怎么做,显然 会有两个儿子,然后两个儿子分别是一条链。 所以我们可以给两个儿子的链上的所有节点分别加到两个堆里,每次取出两个堆的最大值加入到我们选择的答案中,然后把两个堆的最大值全部 pop 掉。最终的答案就是我们 pop 完一个堆之后,所有 pop 阅读全文
摘要:
沟槽的公式,真是公公又式式啊。 考虑一个线段树节点维护一个线段(但一条线段可以被多个线段树节点维护),需要保证该节点被线段完全覆盖。 每次添加一个线段的时候: 如果当前节点没有被这个线段完全覆盖,那么直接递归左右儿子修改。 如果当前节点的线段比新线段严格劣(也就是对于每一个 都有 \(y 阅读全文
摘要:
势能线段树。如果线段树上一个节点的 ,我们称其为关键节点,考虑定义势能 为线段树上关键节点的个数。 对于每次开方操作,如果当前节点为关键节点,则暴力递归左右儿子修改,否则: 如果当前节点 或 \(\max=\min+1 阅读全文
摘要:
由于博客园存在关站风险,文章以后同步发在 这里,可能会有更好的阅读体验。 首先我们分析一下,如果我们已经知道了要走哪些点,我们可以怎么做。 考虑将 之间连边,发现题目可以被转化为给定一个图,要求对于每条边将其一个顶点染色,问最多能将多少个点染色。 于是我们对于每个连通块分开来 阅读全文
摘要:
考虑将 之间连边,发现题目可以被转化为给定一个图,要求对于每条边将其一个顶点染色,问最多能将多少个点染色。 于是我们对于每个连通块分开来考虑。对于一个连通块,注意到我们不能将每个顶点染色当且仅当这个连通块是树,且此时可以染色的定点数量为连通块大小减一,如下: 如果当前连通块是 阅读全文