合集-题解

摘要:原题链接:\(luogu\)$\ \ $ \(BZOJ\)$\ \ $ \(LOJ\) 题目大意:有一个可以支持插入和修改的字符串,定义函数 \(\operatorname{LCQ(x,y)}\) 表示从 \(x\) 开始的后缀与从 \(y\) 开始的后缀的最长公共前缀。 声明变量: \(ls\): 阅读全文
posted @ 2024-01-19 09:40 长安一片月_22 阅读(15) 评论(0) 推荐(0) 编辑
摘要:题目链接:\(BZOJ\) 本题通过 \(dyf\_DYF\) 的题解理解 \(ETT\),代码则借鉴 \(lcyfrog\) 的题解,图片则使用了何太狼的题解。在此笔者感谢这三位神犇。 声明变量: \(ls\):左儿子 \(rs\):右儿子 \(sz\):子树大小 \(rk\):对应堆值 \(fa 阅读全文
posted @ 2024-01-19 22:51 长安一片月_22 阅读(28) 评论(0) 推荐(0) 编辑
摘要:题目链接:\(luogu\) 声明变量: \(tr1/tr2\):原树/点分树,用链式前向星维护 求链长(包括求 \(lca\)) \(a_i\):原树欧拉序 \(st_{i,j}\):\(RMQ\) 数组 \(dist_i\):在原树中点到根的距离 \(dep_i\):在原树中点的深度 \(lg_ 阅读全文
posted @ 2024-02-03 21:07 长安一片月_22 阅读(24) 评论(0) 推荐(0) 编辑
摘要:[SDOI2015] 寻宝游戏 题目大意 给你一棵树,边有边权,现在每个村庄可能会突然有宝藏,又可能会突然没宝藏。 若可以随意选择起点,问每次修改后从起点遍历完所有宝藏再回到起点的最短路径长度。 难度:七星(满分十星) 题解 注:\(dis(x,y)\) 为 \(x\) 到 \(y\) 的距离。 若 阅读全文
posted @ 2024-02-20 14:44 长安一片月_22 阅读(11) 评论(0) 推荐(0) 编辑
摘要:感触很深,写篇题解。 轻而易举地发现 \(dp\) 式: \[dp_i=(dp_{i-1}\times 10^{1+\log_{10}i}\mod p+i)\mod p \]时间复杂度 \(O(n)\),看来不行。 考虑矩阵快速幂优化。 有: \[\begin{bmatrix}dp_i\ i+1\ 阅读全文
posted @ 2024-03-11 21:22 长安一片月_22 阅读(8) 评论(0) 推荐(0) 编辑
摘要:每次合并两个数,做过石子合并的人都能看出来是区间 dp。 设状态 \(dp_{i,j}\) 表示区间 \([i,j]\) 中合并为一个数的所有情况之和。 那么我们就可以枚举断点 \(k\): \(b_k\) 为 \(+\):\([i,k]\) 中的每种情况都要和 \([k+1,j]\) 中的每种情况 阅读全文
posted @ 2024-03-23 11:28 长安一片月_22 阅读(35) 评论(0) 推荐(0) 编辑
摘要:明显要以 \(1\) 为起点。 原图是树 这种情况下,走路不能回头,只能用 \(dfs\) 的思路走。当然肯定每次都走较小的那棵子树,\(vector\) 存图后排序即可达到这种效果。 时间复杂度 \(O(n\log m)\)。 原图是基环树 明显可以分别考虑将所有边断掉后的情况,取字典序最小的。 阅读全文
posted @ 2024-04-14 09:15 长安一片月_22 阅读(14) 评论(0) 推荐(0) 编辑
摘要:众所周知,\(lyh\) 是一名压行大师,也是一名 \(juruo\),所以他将他繁琐的方法用 \(102\) 行表现了出来…… 明显原题为基环内向树森林。 首先用并查集计算连通块,不在一个连通块里的答案就是 \(-1\ -1\)。 发现实际上答案就是以环为根节点,求 \(lca\) 的结果,求完后 阅读全文
posted @ 2024-04-14 17:59 长安一片月_22 阅读(14) 评论(0) 推荐(0) 编辑
摘要:基环内向树上 dp,不过在这里提供给一种非典型做法。 考虑将环上的每一条边都断开,这样就会形成多棵树,先在这些树上进行树形 \(dp\)。设 \(dp_{i,0/1}\) 表示不选/选 \(i\) 时,\(i\) 子树内的最大选点数。明显方程为: \[\begin{cases}dp_{u,0}=\s 阅读全文
posted @ 2024-04-20 10:20 长安一片月_22 阅读(28) 评论(0) 推荐(0) 编辑
摘要:发现可以直接建立虚树。 设 \(dp_{u,0/1/2}\) 表示第 \(u\) 个节点的子树内,所有选中节点到它的距离之和/选中节点中到它的最短距离/选中节点中到它的最长距离,\(as_{u,0/1/2}\) 则代表对于这个子树,题目所问问题的三个答案,\(i1,i2\) 分别为使 \(dp_{u 阅读全文
posted @ 2024-04-20 20:28 长安一片月_22 阅读(8) 评论(0) 推荐(0) 编辑
摘要:不愧是 \(ZJOI\),《最可做的一道题》都让人一头雾水…… 首先将问题转化到链上。 可以将总共的组数转化为每个点可以到达的城市。 明显给每个点建一棵动态开点线段树,维护可以和他通商的点。很明显,可以通商的点的标号连续的一段。我们可以将可以将每一次传播语言的工作当作区间修改,很明显可以用差分。最后 阅读全文
posted @ 2024-04-21 17:18 长安一片月_22 阅读(17) 评论(1) 推荐(0) 编辑
摘要:发现实际上就是二维静态区间最大值,可以用整体二分维护。 时间复杂度 \(O((q+n^2)\log \max(a_{i,j})\log n^2)\)。 #include<bits/stdc++.h> #define ll long long using namespace std; const in 阅读全文
posted @ 2024-05-04 09:38 长安一片月_22 阅读(14) 评论(0) 推荐(0) 编辑
摘要:俗话说的好,正难则反,既然不好想每一个子弹能打碎多少个木板,不如想每个木板被那枚子弹打碎。 然后就是显然的整体二分。由于可能木板不会被击碎,那些木板的分数会累加到最后一个子弹上,因此我们可以加一枚背锅弹,承担多余的分数。 时间复杂度 \(O((n+m)\log^2 m)\)。 #include<bi 阅读全文
posted @ 2024-05-04 10:51 长安一片月_22 阅读(5) 评论(0) 推荐(0) 编辑
摘要:发现实际上就是在求有多少只蜥蜴能逃出来。 发现可以将柱子拆成入点和出点两部分,自己的出点向别人的入点连边,自己的入点向自己的出点连边。最后再加一个超级源点 \(S\),连接所有有蜥蜴的柱子入点;再加一个超级汇点 \(T\),连接所有能够跳出地图的柱子。 我们猛然发现:这个问题不就是求最大流吗? 考虑 阅读全文
posted @ 2024-05-05 10:59 长安一片月_22 阅读(8) 评论(0) 推荐(0) 编辑
摘要:假如将所有激光武器放在一边,所有机器人放在一边,激光武器向它可以伤害的机器人连边,再加超级源/汇点,这就是一个网络流问题。 考虑激光武器向机器人连的边容量无限,而机器人向超级汇点连的边容量为机器人的装甲值,而超级源点连向激光武器的边则是用时 \(\times\) 激光武器伤害。 发现假如答案为 \( 阅读全文
posted @ 2024-05-05 14:44 长安一片月_22 阅读(13) 评论(0) 推荐(0) 编辑
摘要:发现可以做如下建图: 对于前两组输入,从 \(s\) 向所有代表学生的点连一条边,容量为其学习文科的喜悦值;从所有代表学生的点向 \(t\) 连一条边,容量为其学习理科的最大值。 对于后四组输入,建两个点 \(x,y\),从 \(s\) 向 \(x\),从 \(y\) 向 \(t\) 分别连容量为相 阅读全文
posted @ 2024-05-09 11:13 长安一片月_22 阅读(10) 评论(0) 推荐(0) 编辑
摘要:发现题目中描述的配对条件可以理解为:\(pc_i-pc_j=1\) 且 \(a_i\bmod a_j=0\),其中 \(pc_i\) 表示 \(a_i\) 的质因数个数。 自然想到以 \(pc\) 奇偶性建立二分图,可以配对的点间连一条边。 先不考虑费用,三种边为: \((s,i,b_i)\),其中 阅读全文
posted @ 2024-05-19 10:22 长安一片月_22 阅读(6) 评论(0) 推荐(0) 编辑
摘要:每个点拆成入点和出点。 发现每个点、每条边都只能经过一次,所以所有边的容量都是 \(1\)。 #include<bits/stdc++.h> #define ll long long using namespace std; const int N=405,M=1e5+5; int n,m,s,t, 阅读全文
posted @ 2024-05-19 11:00 长安一片月_22 阅读(8) 评论(0) 推荐(0) 编辑
摘要:考虑将修车师傅放在一边,顾客放在一边。 对于第 \(i\) 辆车,让第 \(j\) 个修车师傅来修,放在了倒数第 \(l\) 个,那么他产生的贡献即为 \(t_{i,j}\times l\)。 我们可以将每个修车师傅拆成 \(n\) 个点,第 \(l\) 个点表示修车师傅的倒数第 \(l\) 个位置 阅读全文
posted @ 2024-05-19 11:51 长安一片月_22 阅读(9) 评论(0) 推荐(0) 编辑
摘要:考试压轴题,意识到这题是线段树优化 \(dp\) 时追悔莫及。 为了简化题目,我将从起点到原点变成了从原点到起点(这样就可以省去两个数组的空间)。 想到设 \(dp_{i,j}\) 表示在第 \(i\) 层,奶牛们在 \(j\) 列时的最小移动范围,则转移方程为(设输入为 \(l,r\)): \[\ 阅读全文
posted @ 2024-06-04 20:56 长安一片月_22 阅读(13) 评论(0) 推荐(0) 编辑

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