12 2023 档案
摘要:原题链接:P2391。 并查集好题。 首先我们知道,并查集在一个无向图中可以维护两点之间的连通性,判断条件为:\(find(u)==find(v)\)。而对于这道题来说,我们可以用并查集来维护一个序列区间的重叠性或者说区间的连通性。因为题目上说了后面的操作会覆盖前面的操作,所以我们可以考虑倒序进行操
阅读全文
摘要:题意 定义一种操作为交换 \(a_{i}\) 和 \(a_{i-1}\)。对于一个长度为 \(n\) 的排列,你需要操作若干次,使这个序列变合法,一个序列合法指:满足对于每一个 \(1\le i \le n\),都满足包含 \(a_i\) 的逆序对的个数不超过 \(k\),并且要求最小化操作次数。现
阅读全文
摘要:题意 给定一个长度为 \(n\) 字符串以及一个数 \(f\),你可以执行以下操作任意次,求最终字符串长度的最小值。 在字符串中选择一个连续的 of,删掉它以及它后面的 \(i\) 个字符,\(0 \le i \le f\)。 数据范围:\(n \le 300\)。 思路 看到数据范围以及字符串中间
阅读全文
摘要:原题链接:P3694 思路 状态设计 因为这道题 \(m\) 的范围非常小,所以可以用 \(m\) 来作为状态。设 \(dp_{i}\) 表示 \(m\) 支队伍的状态为 \(i\) 时最少让多少偶像出列。 预处理 在转移之前,我们先要预处理出序列的前缀和 \(sum_{i,j}\) 表示第 \(i
阅读全文
摘要:原题链接:poker 赛时只有 \(40\) 分,改完之后感觉是一道好题,于是就来写篇题解。 题意 有 \(k\) 张扑克牌,\(n\) 种数字,每张牌都有两面,每一面分别写了一个数字,你可以选择打出这张牌的任意一面,但是不能两面同时打,也可以选择不打这张牌。有 \(q\) 个询问,每个询问给定 \
阅读全文
摘要:前言 这场 CF 是我赛后打的,vp 赛时没做出来,后来发现是有个地方理解错了,有一些细节没有考虑到。现在换了一种思路来写,感觉更清晰了。 做法 首先需要动态维护三个变量,\(cnt\) 和 \(finishsort\) 和 \(unfinishsort\)。这三个变量分别表示当前数字的个数,已经排
阅读全文
摘要:前言 看了这道题的几篇题解,感觉讲的方法都比较麻烦,这里讲一个感觉比较简单的方法。 思路 首先判断是否有解。计算一下每一行和每一列的牌的数量,只要有一个是奇数就无解,否则有解。证明显然,偶数一定可以分成两组,在纸上模拟一下也可以得出。 其次看如何构造。对于竖着的牌,显然只对每行有影响,因为列上的颜色
阅读全文
摘要:前言 赛时只做到了 E 题,赛后才来补的 F 题,还没做出来,看来还是我太菜了。看了题解过后感觉这道题的思路特别巧妙,于是就来写了这篇题解。 题意 简述一下题意。 有 \(n\) 个宝藏位置分别在 \(a_{i}\),另外有一只章鱼有 \(n\) 条触手,每条触手的长度为 \(b_{i}\)。 求有
阅读全文
摘要:今天在做 ABC318G 这道题,要用到圆方树的知识,于是就去学了圆方树。 学习圆方树首先需要学习点双连通分量以及缩点,此处不多赘述。 圆方树中分两种类型的点:圆点和方点。圆点指的是原来的无向图中的所有点,而方点指的是每一个点双连通分量所代表的点。相当于每一个点双连通分量就是一个方点。将每一个方点向
阅读全文
摘要:原题链接:ABC318G 显然是圆方树。 点双缩点过后建立一颗以点 \(c\) 为根节点的圆方树,考虑什么情况是合法的。 从点 \(a\) 开始往上跳直到跳到点 \(c\),如果中间走过了某一个方点并且这个方点与 \(b\) 点有直接连边,那么就是合法的;否则不合法。 证明:如果路径中所经过的方点和
阅读全文
摘要:今天学习了圆方树,并且做了一道和这道题很像的题,于是就又来做了一下这道题。 题意 给定一张不保证连通的无向图。求有多少个点对 \((a,b,c)\) 满足 \(a\) 到 \(c\) 的简单路径上经过了点 \(b\)。 思路 显然圆方树。点双缩点过后构造一颗圆方树,然后考虑如何计算答案。圆方树有一个
阅读全文
摘要:原题链接:ABC315G 前置知识:扩展欧几里得算法。如果还不会扩欧的话,建议先去做这道题。 题意 给定 \(n,a,b,c,k\)。求有多少个 \(x,y,z(x,y,z \le n)\) 满足 \(ax+by+cz=k\)。 思路 首先看到题目给出的方程式:\(ax+by+cz=k\)。我们会发
阅读全文
摘要:原题链接:切蛋糕。 题意 给定一个 \(n\) 行 \(m\) 列的蛋糕,问横着切 \(i\) 刀,竖着切 \(j\) 刀后美味度最小的蛋糕的美味度尽可能大。一块蛋糕的美味度为它所含有的小块的美味度之和。 数据范围:\(1 \le n,m \le 14\)。 思路 看到数据范围,我们可以考虑一种类似
阅读全文
摘要:前言 看这道题有好多巨佬都是用 Tarjan 来做的,在这里讲一个自认为比较简单的做法,(不到 \(30\) 行)。 题意 题意比较难讲,建议自己去看一下翻译,在这里不多赘述。 思路 首先看到题目中间给的一个每一次操作的式子:\(a_{l_{i}}=l_{(i\mod k)+1}\)。仔细观察这个式
阅读全文
摘要:参考文章:时间复杂度及主定理详解,托比欧:主定理 Master Theorem。 简介 在算法分析中,主定理(英语:master theorem)提供了用渐近符号表示许多由分治法得到的递推关系式的方法。 在初赛题目中,主定理可以用来计算形如 \(T(n)=a\times T(n/b) + O(n^{
阅读全文
摘要:原题链接:CF1868B2, 简单版:CF1868B1。 题意 有 \(n\) 个人,第 \(i\) 个人手上最初有 \(a_{i}\) 颗糖。现在每个人可以把自己手中的糖选一些给不多于一个人,同时每个人也只能接受不多于一个人的糖,选出的糖的数量必须是二的次幂。问能否能让每个人最终手上的糖的数量相等
阅读全文
摘要:题意 给定一个长度为 \(n\) 的序列 \(ans\),初始值全部为 \(0\)。你一共有 \(k\) 个硬币,你可以选择花 \(a_{i}\) 个硬币来使 \(ans_{1}\) 到 \(ans_{i}\) 中的所有数加一。求最终能得到的 \(ans\) 序列中字典序最大的一个。 思路 首先我们
阅读全文
摘要:题意 给定一个数 \(n\) 和一个包含 \(n\) 个数的序列 \(a\),求出以下式子模 \(998244353\) 的值: \(\sum_{i=1}^{n}\sum_{j=i}^{n} f(i,j)\times (j-i+1)\)。 其中 \(f(i,j)\) 的值为 \(a_{i}\oplu
阅读全文
摘要:原题链接:ABC239Ex。 题意不多赘述。 看到求期望值,我们想到可以用期望 DP。 设 \(dp_{i}\) 表示最终结果大于等于 \(i\) 时的操作次数的期望值。 那么我们可以得到一个基本的状态转移方程:\(dp_{i}=\frac{1}{n} \times \sum_{j=1}^{n}dp
阅读全文
摘要:显然是一道计数 dp。 dp 状态应该是最难的一部分了,个人认为这种状态设计得比较巧妙。如果像我刚开始一样设 \(dp_{i,j}\) 表示序列中一共有 \(i\) 个数,序列最后一个数为 \(j\) 的合法方案数的话,那么方程就会变得很不好转移,因为我们不知道当前的 \(j\) 和之前的某些数能不
阅读全文
摘要:原题链接:斜率。 题意 在一个平面直角坐标系中,给定 \(n\) 个点的横纵坐标,求出哪两个点所构成的连线的斜率最接近 \(\frac{P}{Q}\)。 数据范围:\(n \le 1000000\)。 思路 显然这是一道数学题,不能直接暴力去找答案。 首先我们可以弱化一下题目,求出斜率最接近 \(y
阅读全文
摘要:题意 给定一个长度为 \(n\) 的字符串 \(s\),有 \(m\) 个询问,每次询问最少需要删掉多少个字符才能使 \(l\) 到 \(r\) 组成的字符串当中的每一个前缀和后缀都满足 C 的数量不小于 T 的数量。 思路 因为要满足 C 的数量不小于 T 的数量,我们不妨设字符 C 的位置的值为
阅读全文
摘要:原题链接:P6370 思路 题意不多赘述。 首先这道题的 \(60\) 分暴力很好打,直接按题目中的操作做即可,时间复杂度 \(O(nr)\)。 考虑优化暴力。我们会发现很多次石头的起始点为同一列的情况,其实每一次下落的轨迹是差不多的。具体来讲应该是第一次下落的轨迹一定包含了后面每一次的轨迹。所以我
阅读全文
摘要:题意不多赘述。 注:全文所用的“点 \(u\) 的出度”均指的是点 \(u\) 在原图上的出度。 首先我们考虑 \(r_{i} = 0\) 的情况怎么写,这时我们会发现要么答案是 \(0\) 要么无解。当当前点 \(u\) 无论怎么走都走不到一个环上,即无论怎么走最终都会走到一个出度为 \(0\)
阅读全文
摘要:NOIP 模拟赛原题,赛时没切。 我们可以先考虑 \(30\) 分的部分分怎么打,\(n \le 50\)。对于每一个点去维护两个信息 \(pos\) 和 \(depth\) 分别表示当前这个点所在位置的编号是多少以及它在第几层,我们从两个点最后的状态往回考虑。然后用一个贪心的思想,深度大的点一定会
阅读全文
摘要:NOIP 模拟赛原题,赛时还是没切。 正解奇偶性。 考虑最终不能走的时候是什么情况,当且仅当图中只剩下两个联通块了。设其中一个联通块的点数为 \(k\),那么另一个的点数为 \(n - k\)。所以两人一共的操作次数为 \(sum = \frac{n \times (n-1)}{2}-m-k \ti
阅读全文
摘要:复习了一下边带权并查集板子。 设 \(d_{x}\) 表示当前点到它所在连通块根节点的距离。 合并点 \(x\) 和点 \(y\) 所在两个连通块时需要更新 \(d\)。因为将 \(x\) 点所在连通块的根节点的父亲节点设为了 \(y\) 点所在连通块的根节点,所以有 \(x \to y \to F
阅读全文
摘要:题意:维护两个操作,区间推平,求连续 \(0\) 的个数为 \(x\) 的最前位置。 线段树。 因为需要求连续 \(0\) 的个数,所以维护区间左边连续 \(0\) 的最大个数,区间右边连续 \(0\) 的最大个数以及区间连续 \(0\) 的最大个数。 注意修改的时候要看是修改为 \(1\) 还是修
阅读全文
摘要:原题链接:P2664。 题意:给定一棵树,每个点都有一个颜色 \(c_{i}\)。对于每一个点 \(i\),求出 \(\sum_{j=1}^{n}s(i,j)\) 的值。其中 \(s(i,j)\) 表示点 \(i\) 到点 \(j\) 的颜色数量。 路径相关,考虑点分治。 假设当前的重心为 \(u\
阅读全文
摘要:好像不是题解,算是记录。 记一个 Trick:当求路径边权的中位数的最大值的时候,可以先二分一个答案 \(mid\),然后把大于 \(mid\) 的边设为 \(1\),否则设为 \(-1\)。这样只需要看路径长度是否大于零就可以判断出有没有中位数大于等于 \(mid\) 的情况了。 当然类似到求一个
阅读全文
摘要:题意:求有多少个长度为 \(n\) 的数组 \(a\) 满足以下条件。 条件一:\(l_{i} \le a_{i} \le r_{i}\)。 条件二:\(a_{i}\) 模 \(2\) 等于 \(p_{i}\)。 条件三:\(s \le \sum a_{i} \le t\)。 求答案模 \(mod\
阅读全文
摘要:原题链接:CF713D 题意:给定一个 \(n\times m\) 的地图 \(a\),\(a_{i}\) 为 \(0\) 或 \(1\)。有 \(t\) 次询问,每次询问给定一个矩形,求出这个矩形中最大的由 \(1\) 构成的正方形的边长是多少。 首先考虑预处理出 \(d_{i,j}\) 表示以
阅读全文
摘要:题意:给定一个长度为 \(n\) 的序列,求最少能将这个序列分成多少段使得任意一段中不存在两个数的积为完全平方数。你还可以将其中 \(k(k \le 20)\) 个数修改为任意的值。 一个小 Trick:如果两个数乘起来为平方数,可以先将每个数的平方因子除掉,然后这两个数必然相等。于是可以先将每个
阅读全文
摘要:题意:给定一个长度为 \(n\) 的序列,求最少能将这个序列分成多少段使得任意一段中不存在两个数的积为完全平方数。 一个小 Trick:如果两个数乘起来为平方数,可以先将每个数的平方因子除掉,然后这两个数必然相等。于是这道题被转化为了一个区间不能有相等的值,这就很典了。 设 \(pos_{a_{i}
阅读全文
摘要:题意:有一个 \(n\) 个点的环,以及两个人。每个人可以向环中任意一个位置放置一个 \(A\) 或者 \(B\),但是相邻的位置不能相同,不能行动者输。问最终的局面有多少种。 一个结论是:后手必胜。 证明:最终肯定不可能出现两个连续的空格,否则一定可以在其中一个上填 \(A\) 或 \(B\)。所
阅读全文
摘要:原题链接:ARC168B 题意:有 \(n\) 堆石子,每堆有 \(a_{i}\) 个。每人每次可以取走其中一堆中的 \(x(1 \le x \le k)\) 个。求出一个最大的 \(k\) 使得先手必胜。无解输出 \(0\),\(k\) 可以取无限大输出 \(-1\)。 一个经典 Nim 游戏的结
阅读全文
摘要:题意:有一个二维平面直角坐标系,给定一串向某个方向移动 \(1\) 个单位的操作。 有 \(q\) 个询问,对于每个询问给定 \(x,y,l,r\),问如果倒着做 \(l\) 到 \(r\) 这段区间中的操作,是否会经过 \((x,y)\)。 ds 题。先预处理出 \(sx_i,sy_i\) 表示执
阅读全文
摘要:原题链接:CF1900D,题意不多赘述。 首先可以将 \(a\) 数组排序,并且枚举中间的那个数 \(a_i\)。那么答案就是 \(\sum_{j=1}^{i-1} \gcd(a_j,a_i)\times (n-i)\)。重点在于求前面的 \(\gcd\)。可以用欧拉反演,但是也可以不用,因为我不会
阅读全文
摘要:在这里列举一些代码中经常出错的问题。 \(head\) 数组一定要初始化为 \(-1\)(如果死循环很有可能是这里的问题) 建图要考虑建双向边还是单向边。 有向图 \(Tarjan\) 的时候不要写成 if(u == dfn[u]) 存图的数组要多开几倍。 函数名首字母尽量用大写,以防重名。 用 \
阅读全文
摘要:这道题比较简单,简述一下思路。 考虑状压 \(DP\)。 设 \(dp_{i,j}\) 表示走到第 \(i\) 个点,之前走过的点的状态为 \(j\) 的环的数量。这里有一个细节,就是我们都钦定每个走过的第一点是整个状态中编号最小的点,这样不会重复计算。 考虑如何进行转移。如果当前点的编号比走过的最
阅读全文
摘要:原题链接:P1450 这道题被教练放到了状压 \(DP\) 的题单里面,但是正解却不是状压 \(DP\),而是背包 \(+\) 神奇容斥,只不过是用到了一些二进制状压的思想。 思路 首先看到题目立马就想到了多重背包,但是时间复杂度肯定接受不了,于是考虑优化背包。我们可以想到一个很神奇的性质:假设只有
阅读全文
摘要:原题链接:P3959 乍一看,感觉像是一道图论的最短路这类的题,但是细想发现用图论似乎不可做。再看到这道题的数据范围 \(n<=12\),立马就可以想到用状压 \(DP\),因为数据范围很状压/。 思路 设计状态 首先来考虑状态的设计。如果按状压 \(DP\) 的套路来设的话,设 \(dp_{i,j
阅读全文
摘要:前言 2023.8.30 开始停课集训。 开始补 \(CSP-S\) 的知识点,先打算来学状压 \(DP\)。 定义 状压 \(DP\) 的全称是状态压缩动态规划,也是动态规划中的一种。但是其与普通 \(DP\) 不同的是它将某种状态(一般为二进制 \(01\) 串,\(1\) 表示选,\(0\)
阅读全文
摘要:这里讲一下 \(tarjan\) 算法。主要包括有向图的强连通分量,无向图的边双连通分量与点双连通分量以及缩点。 有向图的强连通分量 首先我们需要了解几个定义。(以下说法均针对有向图) 连通分量:在一个块中,任意两个点之间能够互相到达。即 \(u\) 能到 \(v\),\(v\) 也能到 \(u\)
阅读全文
摘要:原题传送门:mit 前言 这道题是今天模拟赛T1,赛时只有 \(60\) 分。还有一位巨佬这道题保龄了。 题意 给定一个正整数 \(n\),将 \(n\) 拆分成 \(k\) 个数之和。(\(k\) 为任意正整数) 求:\(k\) 个数的乘积最大是多少?乘积的期望是多少? 思路 首先看第一个问题。易
阅读全文
摘要:原题链接:P1903 题意 对于一个序列,维护两个操作: 将 \(a_{x}\) 改为 \(p\)。 求 \(l\) 到 \(r\) 中有多少个不同的数 思路 这道题本来是带修莫队的板子的,但是我是使用分块做的。 具体思路挺板的...但是这道题其实有个 \(trick\)。就是我们先预处理记录 \(
阅读全文
摘要:定义 分块是一种将一些东西分成若干块的一种思想,有分块,数论分块(可能不太算),树分块等等。而分块的这种思想可以优化时间复杂度,一般情况下为 \(O( \sqrt n)\),具体取决于块长的大小。 分块 对数组是分块当中最简单一种。首先我们设块长为 \(s\),那么数组一共就被分成了\(n/s\)
阅读全文
摘要:原题链接:CF575A 前言 今天模拟赛考到了这道题,最近正好在学习矩阵,于是就来写了这道题,发现这道题是矩阵快速幂好题。 题意 题意不多赘述,大概就是一个广义斐波那契数列的升级版,可以修改 \(m\) 个系数。 思路 因为题目是求斐波那契数列的第 \(k\) 项,显然用矩阵去维护。又因为题目说了,
阅读全文
摘要:前言 蒟蒻刚刚开始学矩阵,有些东西可能理解得不是特别好。 矩阵的定义 在 \(c\)++ 中,矩阵其实就是一个 \(n*m\),可以做运算的二维数组。也是运算的中的一种基本单位。 特殊的矩阵 在矩阵的运算过程中,可能会用到一些特殊的矩阵的名称,以下是比较常见的一些特殊矩阵: 同型矩阵:两个矩阵,行数
阅读全文
摘要:原题链接:P7532 前言 这道题是今天 NOIP 模拟赛的 T1,赛时只有 5 分。 题意 简化一下题意,即在一个 \(n\times n\) 的方阵中,求出有多少个满足条件的连通块,使得: 同一行或列的两点中间没有空 连通块内全是草 可以发现,其实连通块就是一个凸多边形。 思路 很显然,这道题是
阅读全文
摘要:原题链接:Tautonym Puzzle 前言 这道题是一道很有趣的构造题。我认为这道题的重点在于对题目要求的转化与转化过程中细节的处理。(有些细节问题也困惑了我很久)。 题意 构造一个字符串 \(S\) ,使 \(S\) 的所有子序列中,恰好有 \(N\) 个好串。 好串:一个字符串能分成两个相同
阅读全文
摘要:原题链接:Group Projects 题意 有 \(n\) 个学生,每个学生有一个能力值 \(a_{i}\) 。现在要把这些学生分成一些(任意数量的)组,每一组的“不和谐度”是该组能力值最大的学生与能力值最小的学生的能力值的差。求所有不和谐度之和不超过 \(k\) 的分组方案总数。 思路 根据题目
阅读全文
摘要:原题链接:Partition into Groups PS:这是今天上午NOIP模拟赛的T3。 题意 N个小朋友,每个小朋友最多有3个敌对小朋友, 问是否能把他们分成两组,使得这N个小朋友最多只有一个敌对小朋友在一组。 思路 考场上想肯定与二分图有关,最后没想出来,打了15分暴力就走了(最后还只有1
阅读全文
摘要:题意 给定一个数 \(n\),要求将 \(n\) 表示成一些 \(4^{k}\) 的数之和或差的形式,要求用的数最少,求方案数。 思路 首先看到这道题的数据范围 \(n\le10^{1000}\),又是求方案数,所以想到用数位 DP。因为每一个数都是 \(4\) 的次幂,显然我们需要讲原数转化为 \
阅读全文
摘要:题意 简述一下题意。给定一张图,每条边是双向的。给定一个数\(b\),求一个最小\(ans\)和一条从\(1\)到\(n\)的路径,使边权和\(<=b\),点权最大值\(<=ans\)。 思路 看到求点权最大值最小,想到二分。又要让边权和最小,想到最短路。具体来讲,二分一个\(mid\),对于每个\
阅读全文
摘要:模板题:P4779 Dijkstra算法 \(Dijstra\)算法是一种求解非负权图上单源最短路径的算法,这种算法不可以解决负环问题。 做法 首先要定义松弛操作。对于一条边(\(u,v\)),松弛操作对应下面的运算:\(dis_{v}\) = \(dis_{u}\) + \(w_{u,v}\)。
阅读全文
摘要:模板题:P3865 定义 \(ST\)表是一种解决可重复贡献的问题的数据结构。可重复贡献问题大致指,对于一种运算,重复这种运算并不影响最终的答案,比如\(max(a,a) = a\),\(gcd(a,a) = a\)。常见的可重复贡献问题有:区间\(max\),区间\(min\),区间\(gcd\)
阅读全文
摘要:原题链接:CF1901E,树形 dp + 神奇分类讨论。 很容易想到树形 dp。难点在于如何转移以及统计答案,需要大量分讨。 父亲(及其以上)和自己组成连通块,不缩。(只保留自己并且往上传递) 连通块中只有自己一个(记录答案) 一个儿子和自己组成连通块,且自己作为根节点,不和父亲收缩(记录答案) 一
阅读全文
摘要:还需要学习的算法 杂项 线性基 虚树 dp 斜率优化 dp 动态 dp 插头 dp ds 动态开点线段树 带修莫队 ODT 可持久化 Trie 线段树合并 线段树优化建图 回滚莫队 树套树 平衡树 数学 莫比乌斯反演 杜教筛 Min_25 筛 类欧几里得算法 二次剩余 拉格朗日插值 线性空间 行列式
阅读全文
摘要:求中位数最大值的时候可以二分一个 \(mid\) ,将大于 \(mid\) 的数赋值为 \(1\),否则为 \(-1\)。判断是否有区间和大于 \(0\) 就可以判断出中位数能否大于 \(mid\) 了。(Freezing with style) 看到 \(n \le 15\) 这种数据范围且是一道
阅读全文
摘要:本篇文章中的所有模板题代码 网络流的概念及定理 流网络 流网络是指一个有向图 \(G\),由点集 \(V\) 和边集 \(E\) 组成,其中有一个源点 \(s\) 和一个汇点 \(t\)。每条边有一个属性称为容量 \(c(u,v)\),每条边也有一个流量 \(f(u,v)\),边的流量大于等于 \(
阅读全文
摘要:2023.12.11 今天报名了 \(\text{THUPC}\),想玩一下,也没想打出什么结果。 和同学组了个队。 2023.12.17 \(11\) 点到学校机房。 我过 \(M\)。 lzy 到机房了。 我过 \(C\)。 zwz 会 \(E\),zwz 写 \(E\),挂挂挂,调调调。 lz
阅读全文
摘要:题意不多赘述。 思路 如果两个所选的三角形有重合部分的话,那么这种情况肯定是不会出现的。因为如果把这两个三角形合成一个大三角形的话,不仅覆盖面积会增大,而且花费的代价还不会多。 于是我们可以想到用 dp 来解决,设 \(dp_{i}\) 表示删完横坐标为 \(0\) 到 \(i\) 中的点的最小代价
阅读全文
摘要:题意 给定一张有向图 \(G\),有 \(n\) 个点和 \(m\) 条边,问是否存在一种拓扑序的排列 \(P\) 使得 \(l_{i} \le p_{i} \le r_{i}\)。 思路 首先对于一条边 \(u \to v\),如果限制满足 \(r_{v}\le r_{u}\) 或者 \(l_{v
阅读全文
摘要:题意 给定 \(n\) 个数,有 \(m\) 个询问,每个询问给定 \(l\) 和 \(r\),求出区间 \(l\) 到 \(r\) 中的最小众数出现次数,强制在线。 数据范围:\(n\le 500000\),空间限制:\(62.5MB\)。 思路 这道题的弱化版是 蒲公英,这道题加强的地方在于数据
阅读全文
摘要:原题链接:P4081 题意 给定一颗 \(n\) 个点 \(m\) 条边的树,求这棵树的严格次小生成树。 严格次小生成树指:边权和大于最小生成树,且边权和最小的生成树。 思路 首先可以用克鲁斯卡尔求出这棵树的最小生成树,然后考虑用类似于反悔贪心的思路来做。 对于每一条不在最小生成树中的边 \(u \
阅读全文
摘要:是一道树剖好题,之前听 lsl 讲过一点,于是很快就做出来了。 题意:有一个 \(n\) 个节点的树,最开始的时候所有边都是轻边,维护两个操作: 操作一:将 \(u\) 到 \(v\) 的路径中经过的所有点的邻边变为轻边,再将这条路径上的边变为重边。 操作二:求出 \(u\) 到 \(v\) 这条路
阅读全文
摘要:题意:求出一个序列 \(q\) 的最长二维不上升子序列,以及求出每个数出现在这个最长二维不上升子序列中的概率。 很显然,三维偏序问题可以用 cdq 分治来优化 dp。 对于第一问,直接把这道题的 \(n^{2}\) dp 优化到 \(\log^{2}\) 即可。具体来讲,设 \(l_{i}\) 表示
阅读全文
摘要:题意:给定一颗 \(n\) 个点的树,点 \(i\) 有权值 \(a_{i}\),边有边权。现在有另外一个完全图,两点之间的边权为树上两点之间的距离加上树上两点的点权,求这张完全图的最小生成树。 首先有一个很显然的暴力,把完全图中每两点之间的边权算出来,然后跑一边最小生成树,时间复杂度 \(O(n^
阅读全文
摘要:原题链接:CF848C。 题意:给定一个序列 \(a\),维护两个操作。 操作一:将 \(a_x\) 修改为 \(y\) 操作二:对于区间 \(l,r\) 中出现的每一种数 \(x\),求出 \(\sum f(x)\)。 \(f(x)\) 表示区间 \(l\) 到 \(r\) 内 \(x\) 最后一
阅读全文
摘要:在这里列举一些代码中经常出错的问题以及一些代码技巧。 \(head\) 数组一定要初始化为 \(-1\)(如果死循环很有可能是这里的问题) 建图要考虑建双向边还是单向边。 有向图 \(Tarjan\) 的时候不要写成 if(u == dfn[u]) 存图的数组要多开几倍。 函数名首字母尽量用大写,以
阅读全文
摘要:2023.11.22 计数场。 \(100+0+0+0=100\)。 C0392 B 【1109 B组】预处理器 题意:求有多少个长度为 \(n\) 的数组 \(a\) 满足以下条件。 条件一:\(l_{i} \le a_{i} \le r_{i}\)。 条件二:\(a_{i}\) 模 \(2\)
阅读全文