0103abc
0103abc 的网站
= 算法、题解与学习记录 =
文章列表
比较厉害的题。题目给的操作太过于神秘,考虑用已有的操作构造出更加简单的操作。 初始的操作形如: 选四个点 $a,b,c,d$ 和一个值 $x$,把 $\newcommand{\lra}{\leftrightarrow} a\lra b,a\lra c,a\lra d$ 的权重增加 $x$,把...
简单小 dp。设 $f_{i,j,k,0/1}$ 表示当前在左侧取到了 $i$ 右侧取到了 $j$ 位置上一次选了 $k$ 个石子,当前是先手/后手操作。那么 $O(n^3)$ 的 dp 是显然的。 考虑经典套路优化:容易观察到 $k$ 每一次最多 $+1$,也就是 $k$ 最大是...
首先注意到存在方案时 $k$ 的量级不超过 $O(\sqrt n)$( $\sum\limits{i=1}^n$ 是 $O(n^2)$ 量级),因此当 $k>50$ 时直接输出 $0$,此时只需要考虑 $k\le 50$ 时的做法。一种常规的做法是设 $f{i,j,k}$ 表示当前考虑了前 $i$...
首先考虑树形态为一条链的情况:很显然直接从链的一段往链的另外一段执行 $1$ 操作就行。 扩展到树上可以考虑用最多 $\lfloor\frac n4\rfloor$ 次 $2$ 操作孤立若干个点然后让树形成若干条链。考虑贪心,设 $fi$ 表示 $i$ 点的状态,这里令 $\text{RED}$...
鉴定为唐题。套路的先考虑什么样的数组是平衡数组: 记 $\text{sum}=\sum\limits{i=1}^nai,\text{ave}=\frac{\text{sum}}n$。 若 $\text{ave}\not\in\mathbb{N_+}$ 则显然该数组不可能为平衡数组。...
duel 到的,直接切了。观察到对于一个初始的给定位置,其可以扩散到的有蚂蚁的位置数量衰减速度很快,因此考虑直接暴力处理出所有有蚂蚁的位置并存储到一个数组中,然后每一次查询明显在范围之外的直接输出 $0$,可能在范围之内的查表即可。
对重复次数 $k$ 的值做数据分治。若 $k\ge 5$ 则可以根据鸽巢原理好的公共子序列必然是将序列划分为若干个长度为 $n/k$ 的连续段后某一个连续段的子序列,可以暴力枚举。若 $k\le 3$ 则可以暴力 dp,这里以 $k=3$ 为例:枚举分界点 $p,q$ 然后可以将序列 $a$ 分为...
比较经典的 Regret Greedy。前置知识 GSS9 trick:选中一条边之后将这条边的边权取反,下一次被选中的时候边权就可以直接抵消。 先考虑一个错误的做法:每一次每一只鼹鼠贪心的前往这个距离最近的点,容易想到树形 dp 维护:设 $fi$ 表示 $i$...
这是给人想的???????????? 构建图模型,把 $0$ 看做是 $x\to x-1$ 的有向边,$1$ 看做是 $x\to x+1$ 的有向边,这样一次操作的合法条件就是在图上走一个环,答案就是这张图字典序最小的欧拉路径。然后贪心处理,对于一个点 $u$ 如果能走到 $u-1$ 且若...
很厉害的题。 分类讨论 $(i,j,k)$($i<j<k$)和相对高度之间的对应关系: $i$ 的高度最高。那么此时 $i$ 和距离她最远的结点 $k$ 之间的距离 $|k-i|$ 一定能对应上 $ai$(因为 $|k-i|>\max(|j-i|,|k-j|)$ 而...