Loading

随笔分类 -  题解

摘要:称初始链上的边 \((i,i+1)\) 为链边 \(i\),称一条新加入的边 \((u,v)(u\le v)\) 覆盖了链边 \(u\sim v-1\)。这 \(n-1\) 条链边是最重要的已知条件,所以考虑对删去的两条边中的链边分类讨论(设当总共有 \(tot\) 条边): 若删去的均不是链边,这 阅读全文
posted @ 2026-02-04 15:55 complexor 阅读(12) 评论(0) 推荐(0)
摘要:记 \(S=\sum_{i=1}^n|t_i|\)。 可以对题面中的“词元”进行离散化,这就是一个字符集大小为 \(S\) 的 字符串问题。 考虑对于固定的 \(k\) 如何计算答案。题意要求为构造一个二元函数 \(f\),满足对每一对字符串和字符 \(a,b\)(\(a\) 为字符串 \(b\) 阅读全文
posted @ 2026-01-01 23:24 complexor 阅读(25) 评论(0) 推荐(0)
摘要:并且任意两座城市之间的最短路经过的道路数都小于 36。 前排提示:题面中这句话保证了给出的是一棵直径不超过 \(36\) 的树,但实际上这个题有一个完全不需要这个性质的 \(\mathcal O(n^2)\) 做法,如果你因为这个性质误入歧途可以重新思考一下。 \(k\le 2\) 的情况时平凡的, 阅读全文
posted @ 2025-12-18 09:12 complexor 阅读(16) 评论(0) 推荐(0)
摘要:由四个点四条边构成的图形有以上三种,其中前两种符合题目要求,称为凸四边形和凹四边形。 为了计数不包含其它点的四边形,考虑枚举一些东西。从时间复杂度上考虑,枚举一个点信息太少,枚举三个点已经 \(\mathcal O(n^3)\) 的复杂度,很难再做别的部分了,所以枚举两个点比较合适。一个想法是枚举一 阅读全文
posted @ 2025-12-17 21:37 complexor 阅读(15) 评论(0) 推荐(0)
摘要:首先转化一下题意。题目重点是无序二元组,不难由此想到图论建图。下面直接给出转化后的题意:给定 \(n\) 个点,\(2n-3\) 条边的无向简单图(\(n\ge 4\)),求出图中两个长度相等的不同简单环(这里不同定义为边集不完全相等),或报告无解。 直接出图论版本多好,现在这个题面看上去像硬编出来 阅读全文
posted @ 2025-12-16 20:52 complexor 阅读(9) 评论(0) 推荐(0)
摘要:将环复制两遍拼在前面和后面,转化为序列上的问题。 考虑一个暴力做法。枚举最后点对齐到第 \(i\) 列上,那么每一行肯定是将第 \(i\) 列左边第一个点或者右边第一个点转过来。这样可以直接二分做到 \(\mathcal O(MR\log n)\)。也可以对 \(i\) 扫描线加上一点手法做到 \( 阅读全文
posted @ 2025-12-15 16:14 complexor 阅读(9) 评论(0) 推荐(0)
摘要:显然可以对区间端点继续离散化,下面设区间端点都在 \([1,2n]\) 内。 不难看出,如果将建一张图,每个点代表原题中的一个区间,两个区间相邻则连一条边,那么两个区间相关当且仅当这两个点在图上连通。 同一个连通块的点不能放在同一个会议室,而一个会议室可以容纳任意多两两不连通的点,故题目可以转化为删 阅读全文
posted @ 2025-12-14 22:45 complexor 阅读(12) 评论(0) 推荐(0)
摘要:不妨设 \(X\le Y\le Z\),目标状态是 \(X=0\)。操作次数上限不大,尝试考虑每次让 \(X\) 成比例减少(例如折半)。 设 \(a=\frac{Y}{X},b=\frac{Z}{X}\)。当 \(a\) 为正整数时考虑以下流程: 若 \(a\) 为偶数,将 \(Z\) 往 \(X 阅读全文
posted @ 2025-12-14 22:45 complexor 阅读(18) 评论(0) 推荐(0)
摘要:题目大意 给定一张带权有向图向图,设 \(d_x\) 为点 \(x\) 到点 \(n\) 的最短路长度(不存在则为 \(+\infin\))。对于所有点 \(x\) 满足 \(d_x\neq+\infin\),需要选择其一条满足 \(d_x=d_y+w\) 的出边 \((x,y,w)\) 作为“默认 阅读全文
posted @ 2025-12-14 22:44 complexor 阅读(12) 评论(0) 推荐(0)
摘要:环上问题比较麻烦,考虑断环成链。 一个观察:如果起始位置不是最小值,那么最小值一定最后一个被取走。起始位置为最小值可以直接 \(\mathcal O(n)\) 模拟。下面将最小值旋转到下标 \(n\),转化为 \([1,n-1]\) 上的序列问题。 这个问题与序列上的区间和数的大小有关,可以考虑建出 阅读全文
posted @ 2025-12-14 22:44 complexor 阅读(12) 评论(0) 推荐(0)
摘要:题意即为:给定一棵有根树,维护以下两种操作: 将点 \(x\) 到根路径上所有边颜色改为 \(c\); 查询出现 \(k\) 次的颜色种数。 考虑维护同色树上连续段。具体地,当修改 \(x\) 到根的路径时,将 \(x\) 到根上的所有点从它们原来所在的连续段断开,并将这些点缩成一个新的连续段。 不 阅读全文
posted @ 2025-11-30 21:11 complexor 阅读(14) 评论(0) 推荐(0)
摘要:最小直径生成树模板。 众所周知,边权全为正的树的所有直径中点重合(有可能在一条边上)。直径问题经常考虑这个点。对于一棵树,设点 \(x\) 到直径中点的距离为 \(d_x\),直径为 \(D\),则 \(D=2\max_x{d_x}\)。进一步,如果将 \(d_x\) 改为 \(x\) 到任一其他点 阅读全文
posted @ 2025-11-30 21:10 complexor 阅读(18) 评论(0) 推荐(0)
摘要:本题只有两种修改操作,可以将每种修改操作看成对有已有的编号进行修改和加入新的编号: 一类修改:来了 \(k\) 个人,所有已有团队成员的编号都会加 \(k\),新来的团队第 \(i\) 个人编号为 \(i-1\); 二类修改:来了无限个人,所有已有团队成员的编号都会变为原来的 \(2\) 倍,新来的 阅读全文
posted @ 2025-11-30 21:09 complexor 阅读(14) 评论(0) 推荐(0)
摘要:先考虑单次询问整个序列。 将答案放在每座塔中编号最小的积木处,那么如果 \(i\) 记入答案,则需要找到一个 \(f_i<i\) 满足 \(s_{f_i}\neq s_i\),且所有 \(f_i\) 互不相同。 显然 \(s_i=\texttt{P}\) 和 \(s_i=\texttt{C}\) 的 阅读全文
posted @ 2025-11-27 21:11 complexor 阅读(23) 评论(0) 推荐(0)
摘要:题目大意 给定一个 \(n\) 个点,\(m\) 条边的简单无向图,其中 \(K\) 条边是特殊边。要求构造一个简单环,使得所有特殊边要么在环上,要么两个端点都不在环上,或报告无解。 \(n\leq 150,K\leq m\leq \frac{n(n+1)}{2}\)。 时间限制 \(12s\)。 阅读全文
posted @ 2025-11-20 16:54 complexor 阅读(43) 评论(0) 推荐(0)
摘要:题意简述 给定 \(n\),将 \(2,3,\dots,3n+1\) 划分成 \(n\) 组 \((a_i,b_i,c_i)\),使得每组中的三个正整数构成钝角三角形的三边长。 \(n\leq 10^5\)。 做法 from 🐍🐍,比官解好。 观察 \(n\) 小的情况: \[\begin{al 阅读全文
posted @ 2025-06-14 16:23 complexor 阅读(42) 评论(0) 推荐(0)
摘要:有趣的题目。 题意简述 给出 \(n\) 个长度为 \(m\) 的字符串 \(t_1,t_2,\dots,t_n\),都由前 \(c\) 个小写字母组成。 定义 \(E(S)\) 为当前有字符串 \(S\),每过 \(1\) 秒,会在 \(S\) 后面随机接一个字母,其为第 \(i(1\leq i\ 阅读全文
posted @ 2025-06-07 08:24 complexor 阅读(27) 评论(0) 推荐(0)
摘要:题意简述 给定 \(n\) 个点,\(m\) 条边的简单有向图,每个点有点权 \(c_i\),并给出上面的两个点 \(s,t(s\neq t)\) 和一个正整数 \(K\)。 要求构造一个点集 \(S\),满足从 \(s\) 到 \(t\) 的任意一条路径中,至少有 \(K\) 个点在 \(S\) 阅读全文
posted @ 2025-06-03 20:40 complexor 阅读(74) 评论(0) 推荐(0)
摘要:题意简述 有一个 \(n\) 个点 \(m\) 条边的无向图,保证没有重边自环,你需要给每条边和每个点标上 \(0/1\)。 要求对于任意一个标了 \(0\) 的点,都有一条标了 \(0\) 的边和它相连。对于任意一个标了 \(1\) 的边,两个端点中至少有一个端点标了 \(1\)。 问所有 \(2 阅读全文
posted @ 2025-05-21 15:10 complexor 阅读(45) 评论(0) 推荐(2)
摘要:题意简述 给定一棵 \(n\) 个点的树。 对于点 \(u,v\),定义它们之间的距离 \(dis(u,v)\) 为树上两点间简单路径的边数。 对于点 \(u\),路径 \(P\),定义它们之间的距离 \(dis(u,P)=\displaystyle\min_{v\in P}\{dis(u,v)\} 阅读全文
posted @ 2025-05-11 22:09 complexor 阅读(30) 评论(0) 推荐(1)