随笔分类 - 题解
题解
摘要:喜闻乐见降智环节。 首先,同一不会有两个史莱姆位于同一格子上。证明显然。 考虑计算 t 时刻内有多少史莱姆经过了 (x,y),再计算 t−1 时刻内有多少史莱姆经过了 (x,y),判断二者是否相等即可。考虑如何求前者。设 dpx,y 表示有多少史莱姆经过了 (x,y),
阅读全文
摘要:笑死,一共只写过 3 篇 Gym 的题解,其中一篇还与这篇相隔恰好 2 年。。。。。。 考虑什么样的点集满足条件,显然一个点集合法的充要条件是存在至少一个点距离这个点集中所有点都 ≤x2——这里出现 .5 什么的问题不大,只要在每条边中间加一个点即可。但是还是不方便计数,
阅读全文
摘要:好题啊!果然还是 anton 出的题人类智慧!(复刻) 首先根据 dilworth 定理,最长反链等于最小链覆盖,由于一个状态合法当且仅当其最长反链大小 ≤k−1,因此如果我们把横纵坐标都递增的点列视作从左上到右下的话,那么一个状态合法又等价于我可以用 k−1 条左下到右上的路径覆盖所
阅读全文
摘要:首先考虑对一般图 G 求解。 考虑 G 的补图,如果补图中连通块个数超过一半,那么从每个连通块中选择一个点出来得到的点集中每个点都是好的。否则在补图的每个连通块中找一棵生成树出来。踢掉所有大小为 1 的连通块,设剩余连通块还有 c 个,它们的总和为 s,显然由于孤立点不超过 $\
阅读全文
摘要:一道挺有难度的 D2E,主要是因为太卡常了/tuu 好像想过很多别的做法,但因为都被卡常了所以就直接说过的做法了。 考虑分块,将操作分为修改和查询处理: 修改:整块打 tag,边角块暴力改并重构得到这一块的最小值。 查询:散块暴力处理,这部分都是套路。 对于整块,如果没有 tag,那么直接用重构得到
阅读全文
摘要:一道还行的构造。 首先答案的下界肯定是 ⌈∑hpin⌉,考虑能否达到之。 一个挺奇怪的地方在于怪物的个数和可以将士兵分成的堆数相等,这启发我们从这里加以思考。 为了方便起见,如果 ∑hpi 不是 n 的倍数,我们就增加 $hp_
阅读全文
摘要:涨见识了,交互题居然还可以这么玩……第一次做还真不一定能想得到。 首先此题最棘手的地方在于,如果你问的 k>x 就自动 gg。 考虑怎样处理这个限制。首先任意时刻我们确定的 x 的范围肯定是一个区间 [l,r] 对吧。因为存在 x=l 的可能,所以在这个状态下我们只能问 k 不超
阅读全文
摘要:首先先把不符合条件一的情况判掉。这种情况很青蛙。 定义一个集合 S 合法,当且仅当 |S|≤p 且 S 中与外界相连的边数 ≤q。 那么可以注意到一件事:如果 S,T 合法,那么 $S\text{\}T,T\text{\}S$ 之一合法(我也不知道为什么要从这个方向考
阅读全文
摘要:奇怪的随机化题,知道题解不长但是还是写一写,以免我忘了这个 trick。 考虑随机给每道题目一个 [0,V] 的权值,然后求出每个点能够到达的点权值的最小值,多次随机取平均值,根据概率论,假设点 x 的答案为 ansx,那么这个权值的期望值应当为 $\dfrac{V}{ans_x+1}
阅读全文
摘要:构造双射的好题。 首先考虑这个 k 怎么求。称一条极长的满足 i<p[i]<p[p[i]]<⋯ 的序列为一条“链”,通过手玩,k 就是长度为奇数的链的数量。 直接求还是不容易,我们考虑先对排列进行一些变换,对于一个排列 p,我们将排列中每个置换环按最小元素为关键字从大到小排
阅读全文
摘要:很显然的,题目要我们求的是个 01 背包,一看数据范围,2×105,GG。 考虑挖掘一些性质。令 di=degi−1,Ls 表示最少需要多少个点才能使得它们的 d 之和恰好等于 s,Rs 表示最多需要多少个点才能使得它们的 d 之和恰好等于 s。
阅读全文
摘要:格局打开了,FWT 居然还可以这么玩。 首先模型转化,每次以 xn 的概率令 x 减 1,1−xn 的概率令 x 加 1 可以视作,有 n 个硬币摆成一排,其中 x 为正面向上的硬币个数,每次随机翻转一个硬币。 考虑将硬币朝上和
阅读全文
摘要:首先考虑对于固定的 p 怎么求答案。其实就是 UOJ 749 稳健型选手。考虑维护一个堆,按 p 从大到小的顺序,每次加入两个数后 pop 出最大的元素累加入答案,最后的总和就是 snuke 最大得分。 接下来考虑计数。首先将 a 从大到小排序,由于贡献独立,所以我们可以统计出 $a_k
阅读全文
摘要:隔两个月补题解的时候甚至连题面都忘记了。。。 先考虑有解的充要条件,令 S=∑ai,考虑 c=⌊Sk⌋,g=(S−1)mod,换句话说,我们把整个序列分成若干个长度为 k 的块,那么 c 是块的个数,g 的最后一个
阅读全文
摘要:补两个月前鸽掉的题解.jpg 首先不妨假设 a 从大到小排好序,那么一件显然的事情是操作相邻的两数最优。考虑构造函数 f(a)=\sum\limits_{i<j}|a_i-a_j|,那么容易发现每次对相邻两个 a_i,a_{i+1} 操作 x 之后,f(a) 会恰好减少 2x
阅读全文