摘要: 势能分析法 概述 在进行部分操作时,我们操作的复杂度不一定符合题目要求(额外操作);但是如果 它的总复杂度 是符合要求的,那么这个操作也可以使用。 这种分析方法(思想)成为 势能分析法 分析 在进行势能分析时,关键是找到 总复杂度,其次是论证总复杂度是随着额外操作的进行而严格递减的。 为了找到总复杂 阅读全文
posted @ 2025-07-08 21:25 XiaoZi_qwq 阅读(14) 评论(0) 推荐(0)
摘要: 题目描述 分析题意 首先我们需要理解 “联通” 这个概念。有两种情况被称为“联通”: 对于同一列的相邻的两个格子,它们都是 “.”,“|”或“O”三者之一 对于同一行的相邻的两个格子,它们都是 “.”,“-”或“O”三者之一 然后我们看到本题需要维护联通块,因此可以考虑使用并查集维护联通块。 其次, 阅读全文
posted @ 2025-07-07 18:04 XiaoZi_qwq 阅读(12) 评论(0) 推荐(0)
摘要: 其中 \(N \leq 500 M \leq 12470\) 第一个问很简单,直接跑SPFA或DJ都可以。 关键是第二个问,我们可以转化一下题意:去掉某些边,让最短路权值变大,等价于去掉某些边,使得只通过原最短路上的边无法到达终点。 “删去某些边,使得原图不连通,并且花费最小。”这不就是最小割吗!所 阅读全文
posted @ 2025-07-07 16:47 XiaoZi_qwq 阅读(8) 评论(0) 推荐(0)
摘要: 题意简而言之就是:求每一个点作根时,叶子节点的深度之和。 这么一看就发现,这是很经典的换根dp。 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #define add(u,v,w) adds(u,v 阅读全文
posted @ 2025-07-07 16:39 XiaoZi_qwq 阅读(4) 评论(0) 推荐(0)
摘要: 看到“没有就加上,有了就减去”,就应该可以想到异或操作;查询树上一段路径,可以直接树上差分。 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #define add(u,v,w) adds(u,v,w 阅读全文
posted @ 2025-07-07 16:35 XiaoZi_qwq 阅读(5) 评论(0) 推荐(0)
摘要: 题目描述 一看 \(n\) 高达 \(2e5\),直接猜时间复杂度为 \(O(NlogN)\) 的算法。 环上问题,先破环为链。 我们可以考虑对于一个区间,它可以转移到左端点在这个区间内的任意一个区间,所以通过贪心的思想可以得到,我们肯定要取左端点最大的一个区间。 同时我们注意到,一个一个区间跳显然 阅读全文
posted @ 2025-07-07 16:30 XiaoZi_qwq 阅读(10) 评论(0) 推荐(0)
摘要: 题目描述 一眼数位dp,预处理很简单,但是统计逆天。 启示:只要不TLE和MLE,不要嫌状态多/麻烦 #include<bits/stdc++.h> #define inf 0x3f3f3f3f using namespace std; inline int max(int x,int y){ret 阅读全文
posted @ 2025-07-07 16:30 XiaoZi_qwq 阅读(4) 评论(0) 推荐(0)
摘要: 其中 \(n,m \leq 1e5\),\(MAXY \leq 1e3\). 注意到每个 \(i\) 只有一个对应的 \(a_{i-1}\),可以发现营地及其传送关系构成了一棵树;每一次询问相当于从书上一点一直跳到根节点,并更新路径上的点的被访问次数。 其次我们注意到,题目问的是 “编号不同” 的询 阅读全文
posted @ 2025-07-07 16:29 XiaoZi_qwq 阅读(11) 评论(0) 推荐(0)
摘要: 其中 \(N \leq 1e18\) , \(T \leq 1e3\) 注意到用于凑数的是斐波那契数列,所以可以用于凑数的数字不超过 \(logn\) 个。 直接搜索,常规剪枝即可 启示:充分剪枝的前提下,可以使用 STL 容器进行记忆化 #include<bits/stdc++.h> #defin 阅读全文
posted @ 2025-07-07 16:29 XiaoZi_qwq 阅读(6) 评论(0) 推荐(0)
摘要: 其中,$n \leq 1e5 $ 看到题,没有头绪;用脑子思考后,没有头绪。因此抛弃脑子,直接打暴力。 通过暴力算法,我们可以发现,符合条件的排列数量一定是严格不上升的。 进一步研究发现:若 \([l,r]\) 不满足条件,则 \([l,r+1]\) 一定不满足条件。 下面是证明:已知 \([l,r 阅读全文
posted @ 2025-07-07 16:29 XiaoZi_qwq 阅读(7) 评论(0) 推荐(0)