随笔分类 -  题解

各种题的题解哩
摘要:虚式优化建图题。 首先有一个很显然的暴力,对于两条相交的线段连一条边,然后跑割点。 这个暴力的问题在于边与点的时间复杂度相差过大,无论是空间还是时间都无法承受,所以可以想到去优化建图。 首先我们假设点与边的复杂度相同,那么我们空间是承受的下的,现在想要时间承受下,由于是二维平面图,很容易想到去用扫描 阅读全文
posted @ 2023-03-09 21:39 Gmt丶Fu9ture 阅读(42) 评论(0) 推荐(0) 编辑
摘要:传送门 首先考虑求出长度为 i 的合法串的个数。 很明显可以想到用 dp 解。 设 fi,0/1 为长度为 i 最后一位为 0/1 的合法串个数。 可以很容易想到转移方程: fi,0=fi1,0 fi,1=fi1,1+fi1,0 第一 阅读全文
posted @ 2023-02-25 16:35 Gmt丶Fu9ture 阅读(19) 评论(0) 推荐(0) 编辑
摘要:题意简述: 求 [l,r] 内各个数位积为 k 的数的和。 解: 在看题解前,请先确认自己是否精通了数位 dp 模板题,否则会很难理解。 对于朴素的数位 dp,我们可以记录 fi,j 代表枚举到第 x 位,还需要的乘积为 j 的数之和。 只有一个状态处理数的个数,但本题要求 阅读全文
posted @ 2023-02-24 13:49 Gmt丶Fu9ture 阅读(22) 评论(0) 推荐(0) 编辑
摘要:首先题中的 y,z 好像没啥用…… 首先对于每一次询问,要求 min((x0xi)2+ci)(x0xi)2+ci=ans。 那么 x02+xi22x0xi+ci=ans 所以 x02+xi2+ci=2x0xi+ans。 这 阅读全文
posted @ 2023-02-24 13:48 Gmt丶Fu9ture 阅读(28) 评论(0) 推荐(0) 编辑
摘要:一道经典的反悔贪心题。 考虑每次选择使总星数加一,那么总共有四种情况。 一、对于一关没有星,选一颗星,代价为 ai。 二、对于一关有一颗星,再选一颗星,代价为 biai。 三、对于一关有一颗星,选择退回这颗星,并再另一个没星的关卡选两颗星,代价为 ai+bj。 四、对于一关 阅读全文
posted @ 2023-02-24 13:48 Gmt丶Fu9ture 阅读(23) 评论(0) 推荐(0) 编辑
摘要:由于是多个串,还与每个子串的信息有关,很容易想到用 SA 或广义 SAM。这里选择用 SA。 首先先把字符串转化为数组,连接起来,中间用一些不会出现的数。处理出后缀数组与 height 数组,下面简写为 h。 所以我们转化后实际上就是求一个后缀中有多长的前缀在 k 个来源不同串的后缀的前 阅读全文
posted @ 2023-02-24 13:47 Gmt丶Fu9ture 阅读(26) 评论(0) 推荐(0) 编辑
摘要:题意简述: 给定 n 个互不相交,可以重叠的矩阵,对某些点染色,这个点上的所有矩阵会被染上这个颜色,求最后每个矩阵会有多少种颜色。 解: 我们可以先把矩阵拆成上下两条水平线段,然后离线将染色与线段横坐标离散化,以纵坐标将矩阵将线段与染色一起处理。 维护一棵线段树,对于一个矩阵的下方线段加入,直接 阅读全文
posted @ 2023-02-24 13:47 Gmt丶Fu9ture 阅读(23) 评论(0) 推荐(0) 编辑
摘要:题意简述: 删去最少的数使所有的数的 gcd 增加。 解: 先对每个数除以所有数的 gcd,然后剩下的需要找到所有数的质因子,找到一个最多的序列中数拥有的质因子,那么答案就是总数减去拥有这个质因子的数的个数。 用质数筛先预处理,再进行质因子分解,最后取最值即可。 阅读全文
posted @ 2023-02-24 13:46 Gmt丶Fu9ture 阅读(19) 评论(0) 推荐(0) 编辑
摘要:题意简述: 给定一个无向图,边权带两个值 (a,b),给定 q 次询问,每次询问给定两个点,求两个点直接是否有 max(a)=xmax(b)=y 的简单或非简单路径。 解: 如果是单次询问,可以想到我们把所有 axby 的边加入,判断 $(u, 阅读全文
posted @ 2023-02-24 13:46 Gmt丶Fu9ture 阅读(18) 评论(0) 推荐(0) 编辑
摘要:题意简述: 一个 n×m 的带墙体单入口多出口迷宫中有 k 个陷阱,陷阱分为有害或无害,有害会使人掉血,给出所有垃圾的有害与无害的所有排列组成的概率,给定人的血量,求掉最少血走出迷宫的概率。 解: 提到迷宫问题,考虑搜索。 首先将垃圾状态状压,0 为未知,1 为无害,$2 阅读全文
posted @ 2023-02-24 13:45 Gmt丶Fu9ture 阅读(29) 评论(0) 推荐(0) 编辑
摘要:这是一个悲伤的题目,自这道题后,Noi 再无 SPFA。 首先讲一下重构树是啥。 重构树是基于 kurskal 生成树 算法的一棵树,对于每一次合并一条边,用一个新的节点,连接边的两个端点连起来,用新的点替换这两个点进行下次合并即可,新的点点权为 阅读全文
posted @ 2023-02-24 13:45 Gmt丶Fu9ture 阅读(16) 评论(0) 推荐(0) 编辑
摘要:首先考虑传送门的作用,那就是使我能更快地走到终点,也就是跳过一段路经。 那么既然这样,我们就在需要传送时先打传送门,然后找到一个墙打传送门再传送即可。 很明显选择的墙即是离自己最近的墙。 但是这样明显麻烦了,实际上一定会存在自己或另一个不是墙的点能同时打到离自己最近的墙与要打传送门的墙。 考虑证明, 阅读全文
posted @ 2023-02-24 13:44 Gmt丶Fu9ture 阅读(40) 评论(0) 推荐(0) 编辑
摘要:明显是 dp。 首先列出 dp 式子,设 fi 为跳到 i 时的最小代价。 那么: fi=fj+(hihj)2+(sumi1sumj)fi=fj+hi2+hj2+2hihj+sumi1sumj $f_j+h_j^2-sum_j 阅读全文
posted @ 2023-02-24 13:44 Gmt丶Fu9ture 阅读(32) 评论(0) 推荐(0) 编辑
摘要:首先有一个结论,树中存在一个深度 dep,使得深度小于等于 dep 的点只需 dep 次覆盖完,而大于 dep 的除最后一次外其他每次都可以填充 k 次。 证明:在 dep 上面的所有点如果不能连续填充 k 次,说明均摊下来每一层的点数肯定小于 k,这样的话一定存在上 阅读全文
posted @ 2023-02-24 13:43 Gmt丶Fu9ture 阅读(27) 评论(0) 推荐(0) 编辑
摘要:首先可以发现 dp 方程为:dpi,k=dpj,k1+(sumisumj+1)2。 那么展开即为:dpj,k+sumj2sumj=2×sumi×sumj+dpi,ksumi21sumi。 很明显斜率 dp,$2 阅读全文
posted @ 2023-02-24 13:42 Gmt丶Fu9ture 阅读(20) 评论(0) 推荐(0) 编辑
摘要:对于一个数 s1s2s3,进行一次变换后会变成 (s1+s3)(s2+s2)(s3+s1),不考虑进位的话,很明显每变化一次就会变成一个回文串,且这个回文串最高位是 18。 那我们就可以先预处理出来所有回文串的只用一次就能构成 阅读全文
posted @ 2023-02-24 13:42 Gmt丶Fu9ture 阅读(18) 评论(0) 推荐(0) 编辑
摘要:对于每一次询问,有 x×q+y=ans。 可以推出: y=q×x+y,那么不难看出这是一个直线解析式,而 x,y 则是集合中的点,所以是固定的,斜率 q 已给出,要使 ans 最大,那么截距,即直线与 y 轴交点越高。 那么可以想到维护凸包,维护凸 阅读全文
posted @ 2023-02-24 13:41 Gmt丶Fu9ture 阅读(25) 评论(0) 推荐(0) 编辑
摘要:我太蒻了,又调了一天…… 本题如果没有 l,r 的限制,就是一个裸的点分治。 现在我们加上了 l,r 的限制条件,那么我们就需要进行区间处理。 如果在范围内进行 01 背包,很明显有单调性,但是由于有排序等操作,复杂度会上升到 O(n×log22(n)),而我太菜不太 阅读全文
posted @ 2023-02-24 13:41 Gmt丶Fu9ture 阅读(27) 评论(0) 推荐(0) 编辑
摘要:我太蒻了,这题好难…… 首先进行点分治,分裂时自己分裂的子树对自己的节点可以利用深搜搜出来,如果一个颜色在此节点到根的链上第一次出现,那么对根的贡献为其子树大小,如果不是第一次出现,那么无贡献。 然后考虑子树对子树的贡献,那么先减去自己子树做的贡献,然后搜索整棵子树,对于自己到根上的所有点的贡献都赋 阅读全文
posted @ 2023-02-24 13:40 Gmt丶Fu9ture 阅读(17) 评论(0) 推荐(0) 编辑
摘要:~~期望就是来搞笑的。~~ 由于有最小公倍数,所以可以想到分解质因数,对于多个数求最小公倍数,取每个质因子的最大指数,最后相乘即可。 既然都知道了这个,那么就想到先统计每个数的个数,再将质因子作为状态,进行 dp。 但是由于 ai 太大,无法装下所有的质因子,所以考虑根号分治。 对于质因子在 阅读全文
posted @ 2023-02-24 13:39 Gmt丶Fu9ture 阅读(35) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示