05 2023 档案
摘要:非常神秘的一道题,当之无愧的 *3500。 首先考虑转化题意。考虑一种决策树,由于我们每次问一条边之后,相当于会根据信息删掉两个连通块中的一个,因此一种决策树实际上对应了原树的一棵边分树。而为了让最坏情况下的询问次数最少,我们目标实际上是最小化边分树的深度。 考虑借鉴 [P5912 JAS](htt
阅读全文
摘要:模拟赛放了道 *3500,结果全场都切了,非常恐怖。 首先考虑怎么样的树是合法的,打个表发现 SG 函数值为 ,换句话说后手必胜当且仅当每种深度的点数都是偶数。 于是实际上我们只用建出虚树之后树上差分一下求出每个点被覆盖
阅读全文
摘要:先推式子。设 表示 decent 集合恰好为 的排列个数, 表示 是 的 decent 集合的一个子集的排列 个数,$g'(\{a_1,a_2,\cdots,a_k\})=\dfrac{n!}{a_1!(a_2-a_1)!(a_3-a_2)!
阅读全文
摘要:考虑建出 AC 自动机,朴素做法是高斯消元,,复杂度 ,不能接受。 考虑优化高斯消元的过程,我们定义以下节点为“关键点”: - 根节点 - 对于一个 trie 树(也就是未经过 AC 自
阅读全文
摘要:听说是 PGF 板板题,但是不会 PGF,怎么办捏( 暴力做法显然是建出 AC 自动机但是高斯消元,但是状态数高达 ,有没有优化的余地呢? 注意到终止状态只有 个,AC 自动机上其他节点表示的状态其实都可以归结为“非终止状态”,因此我们考虑设 个变量 $x_1\sim x_n
阅读全文
摘要:显然,两个序列本质不同等价于它们的笛卡尔树不同。而题目这个关于 的限制等价于,每个叶子节点到根路径上,满足“该点是其父亲的左儿子“的节点数不超过 。 考虑 。 表示有多少个长度为 的序列,满足每个叶子节点到根路径上左儿子个数不超过 ,那
阅读全文
摘要:算法竞赛打 apio,就像,只能度过一个相对失败的人生。
阅读全文
摘要:显然,如果选择的 个“合法集合”固定了,那么可以放置装置的点如果存在,那么必然形成一个连通块,也就是说,答案等于所有合法方案中,可以放置装置的点形成的连通块个数之和。而根据点减边的套路,这等价于,枚举每个点,计算有多少种方案满足可以在其放置装置,再枚举每条边,计算有多少种方案满足这条边两个端
阅读全文
摘要:等价于最大化 对区间的交集之和。而对于每个 我们肯定会选择与其交集最大的 与之匹配,所以我们只用对 个区间进行决策即可。 首先先发现一个东西:存在一种最优解,使得对于每个选择的区间 ,要么有 ,要么有 $p+
阅读全文
摘要:一道比较诈骗的题,放在现场最大的挑战在于做完 B2 C D 这三道不算太签的题以后还有时间开这个题。 首先特判 。以任意一个不是叶子的点为根。那么一棵树合法,当且仅当其中所有叶子都能在 步内互相到达,因为如果一对不能在 步内互相到达的点 中存在至少一个不是叶
阅读全文
摘要:一个有点烦的 的做法。 大致想法大家都一样:以 为根,然后先问出每个点深度,再问出每个点的父亲。 首先先用一个 log 的做法问出树高,具体做法是直接令根节点的 为二分出的 ,看能否覆盖所有点即可,记最大深度为 。可以在二分过程中顺带着求出
阅读全文
摘要:首先 当 做,也就是说题目等价于找不超过 条路径使得任意两点间的路径都可以表示为选定的这些路径中不相交的三者的并。 先考虑链怎么做,关于这个 ,很自然的想法是取若干关键点,关键点之间两两连边,其余点再像相邻两关键点连边,因此考虑分块,每 个点设个关键
阅读全文
摘要:很套路的一道题,把 F1 写了,F2 感觉和 F1 gap 不太大就懒得写了/shui 首先需要明白大致思路:直接计算 之所以会算重,是因为对于同一种图案,可能把它放在很多位置都是合法的。那么显然我们需要选一个代表元来把它的贡献唯一化,非常自然的想法就是把它固定在最左上角那
阅读全文
摘要:提前声明:我的代码过不了 Ynoi 原题。
阅读全文
摘要:想到将最优化问题转化为数点问题的一步了,但是因为转化的姿势不太好导致我的数点不太能用特别简洁的数据结构维护,最后只好看题解( 考虑先解决单组询问的问题,对于每个点 ,我们找出它左边最近的 的点 ,和它右边最近的 的点 ,然
阅读全文
摘要:思路挺自然的一道 agc。 首先发现删除完字符后的状态可以用一个三元组 表示,其中 表示删除完之后只剩 的后缀, 表示可以在后面插入 个 , 表示可以在后面插入 个 ,显然不同的三元组能够得到的串是不同的,而一组
阅读全文
摘要:听说有 polylog 做法,但是偷懒想了个根号 log 的做法,肯定有优化的空间,但一看数据范围 就摆烂了。 显然对于一次操作,我们只用关心最早什么时候这次操作加入的数全部都被 pop 掉了,求出这个之后对于 相同的操作我们放一起考虑,求一遍区间并即可算出贡献。 于是问题转化
阅读全文
摘要:设 数组的前缀和为 , 数组的前缀和为 ,那么根据模拟费用流或者贪心的思想,每一条边经过的次数即为 ,因此非常 trivial 的做法是转换贡献体,枚举每种方案下每条边被经过的次数,然后乘以 求和,具体来说: $$ ans=\sum
阅读全文
摘要:好题啊!最喜欢这种思路层层递进的题了。 首先从最终形态的角度入手分析。建立一棵合并树,每次合并两个数的时候就新建一个节点,令这个节点为合并的两个节点的父亲。那么显然一个点对答案的贡献系数就是 。更具体地不妨设 ,最终被划分在 对应的数中
阅读全文
摘要:为什么赛时不开串串题?为什么赛时不开串串题?为什么赛时不开串串题?为什么赛时不开串串题?为什么赛时不开串串题? 一种 SA 做法,本质上和 SAM 做法等价,但是说来也丢人,一般要用到 SAM 的题我都是拿 SA 过的/wul 考虑将 看作一个整体。记 为
阅读全文
摘要:一道挺有意思的题,并且感觉有点诈骗的成分在内( 首先考虑分析三种字符的性质: 显然任意两点 之间要么 可以到达 ,要么 可以到达 ,否则 A O X 三个一个都不能满足。 如果两点间的状态是 A,那么这两点必须在同一强连通分量内。 如果两点间的状态是 X,那么
阅读全文
摘要:我这个低能儿怎么这个题调了这么久啊,废了/dk 非常烦的做法,不过也可以看看,代码也不算太难写( 首先注意到很诈骗的一件事情是,只要这个序列 是单峰的或者单谷的(当然,递增递减序列也算在内),都恰有两种方式选择 使得操作完后的序列的单调的,并且显然选树的 Ember 有必胜
阅读全文
摘要:agc 思维题可不可以爬?
阅读全文
摘要:见过的最怪的网络流题,没有之一。 首先新建超级源点,向 各连 的边。设最大流为 ,那么显然最优方案中 flutter 和 water 流量之和为 。 先分析一波答案函数。显然,最终答案关于 flutter 的流量 的函数 $f(x)=x^a(A-x)
阅读全文
摘要:一道需要一些猜结论技巧的中档题。 首先突破口在于排列长度恰好等于不是额外输入的某个数 而是 LDS 与 LIS 的乘积,这显然启示我们去找一些性质。根据 dilworth 定理,最长反链等于最小链覆盖,故 LIS 的长度,就是最少需要的递减数列的个数使得每个元素被覆盖至少一次,而每个递减数列
阅读全文
摘要:首先先观察到一个性质:我们选出的边集一定不会成环。因为如果成环去掉任意一个环边一定更优,也就是说我们选出的边集的导出子图一定是一个森林。 由于是森林,必然可以对其进行二分图染色,于是很 nb 的一步来了,考虑随机对 个点黑白染色,然后网络流建图: 新建超级源点 和源点 ,连边
阅读全文