摘要:
二维数点的原问题 给定 $n$ 个点 $(x_i,y_i)$ 给出 $m$ 个矩形,求在矩形中有多少个点。 解题方法 这个原问题还是比较好解决的,我们先把问题转化一下。 我们要求的就是 $\begin{cases}l_j\leq x_i\leq r_j\ d_j \leq y_i\leq u_j\e 阅读全文
摘要:
通过打表我们知道,或者是数学直觉(雾? 反正 $a_n=c^{cnt(n)}$,其中 $cnt(n)$ 表示 $n$ 中的 $1$ 的数量。 知道了这点,我们考虑如何计算这个题目。我们要算 $i\in[0,n]$ 的 $a_i$ 的和,因为跟二进制很有关系,所以我们考虑我们现在已经算到了第若干位。 阅读全文
摘要:
虽然听了正解,但是我们还是要好好考虑一下这道题。 我们从高到低的考虑每一位,我们考虑前面还差多少,其实前面一位只会有 $0$ 和 $-1$。因为 $1$ 我们是无法通过后面的二进制位弥补上的。 我们定义 $f_i$ 表示还剩 $i,i=-1\or 0$ 的代价。 我们考虑之前的 $g_{-1}$ 能 阅读全文
摘要:
数位考虑+背包(+滚动数组) 首先,我们能发现,这是一道 $n$ 很小但是体积和权值都非常大的背包。 但是这个题的体积有一个特殊的性质,就是他是 $a\times 2^b,a\leq10$ 的形式,这个性质是非常好的。 我们定义 $f_i$ 表示我们当前还剩 $i$ 的空间我们能拿到的最大值,我们从 阅读全文
摘要:
首先,对于一个子树,我们显然只有两种去让军队走过他的办法,一种是从兄弟节点调一些军队来,另一种是从根节点推过来。 感觉有一个结论,就是我这个位置如果用兄弟节点推过来的只是因为兄弟节点推过来的步数小于从根节点重新来一个步数小。 我们首先会遇到一个问题,如果现在兄弟节点推过来的确实比从根来小,但是有没有 阅读全文
摘要:
$n$ 只有 $2000$,这样的话我们可以开二维的 dp 了,所以我们大胆一点,定义 $f_{u,i}$ 表示在 $u$ 号点,用了 $i$ 次操作后的代价。 似乎就是一个裸的树上背包了。 考虑一下如何合并,对于 $u$ 结点,之前的儿子节点已经处理完了,我们现在如何合并到当前的状态。 我们好像要 阅读全文
摘要:
解题思路 我们注意到这题有个巧妙的地方 $t_i\leq 3$,我们思考一下这个条件有什么用。 这就限制了我们在一个结点的选择,我们不可能走完两个很大的结点。如果我们站在当前的结点,我们只有几种可能。 对于当前的若干儿子,我们只能选择其中的一个权值 但是如果我们有一个 $t_i=3$ 我们可以选择两 阅读全文
该文被密码保护。 阅读全文
摘要:
类似于上面所说的,我们定义如果和 $S$ 相连说明我们选择文科,如果和 $T$ 相连就说明选的是理科。 考虑如何建边,肯定是每一个人都建若干个点吧,如果一个点表示我这个人选了理科,那么他要向文科建边,边权是文科的代价,如果我这个人选了文科,就向理科连边,边权是理科的代价。那么如何处理两个人之间同时学 阅读全文
摘要:
做了若干最小割的题目,觉得建图有以下几个方面的 trick。 首先就是最好的收益就是总收益减最小割 我们应该把在最小割题目里的源点和汇点想一个更好的解释,应该是题目中的两个选择。比如说文理科,比如说选不选。然后我们把源点能到的所有点都叫做和源点是同类型的点,把所有能到汇点的点全部叫做与汇点同类型的点 阅读全文