上一页 1 ··· 15 16 17 18 19 20 21 22 23 ··· 51 下一页
摘要: 简单并查集。 考虑先对图进行并查集,令 fif_ifi​ 表示 iii 号节点在并查集中用 getfa 找到的结果。 对于添加边 u↔vu \leftrightarrow vu↔v,uuu 和 vvv 分别所在的连通块中的每一对点都会变得联通,也就是对于所有 x,y(fx=fu,fy=fv)x,y( 阅读全文
posted @ 2023-06-06 19:13 HappyBobb 阅读(19) 评论(0) 推荐(0)
摘要: 考虑 DP。 令 fi,0/1f_{i,0/1}fi,0/1​ 表示当前打完了第 iii 个字母,且 Capslock 现在处于开启或关闭时的代价最小值。 于是可以进行线性 DP。 #include <bits/stdc++.h> using namespace std; const int N = 阅读全文
posted @ 2023-05-28 16:31 HappyBobb 阅读(20) 评论(0) 推荐(0)
摘要: 直接模拟即可。 #include <bits/stdc++.h> using namespace std; const int N = 2e5 + 5; int dx[] = { 0, 0, -1, 1 }; int dy[] = { -1, 1, 0, 0 }; int n, m, h, k; s 阅读全文
posted @ 2023-05-28 15:48 HappyBobb 阅读(28) 评论(0) 推荐(0)
摘要: 比较经典的问题。 考虑根号分治,令 b=⌊n⌋b=\lfloor\sqrt n\rfloorb=⌊n​⌋。对于 k≥bk \geq bk≥b,直接暴力,复杂度是 O(n)O(\sqrt n)O(n​) 的。对于 k<bk < bk<b,考虑预处理 fi,jf_{i,j}fi,j​ 表示 t=i,k= 阅读全文
posted @ 2023-05-26 22:11 HappyBobb 阅读(20) 评论(0) 推荐(0)
摘要: 非常套路的建图最短路。 首先有一个非常好思考的做法,对于 i,ji,ji,j,如果 iii 的集合和 jjj 的集合有交集,那么连 i↔ji \leftrightarrow ji↔j 的边。 但这样建图复杂度已经达到了 O(n2)O(n^2)O(n2) 以上,无法承受。 于是我们考虑转化。两个集合有 阅读全文
posted @ 2023-05-22 18:29 HappyBobb 阅读(22) 评论(0) 推荐(0)
摘要: 题意 有一张 nnn 个点,初始时没有边的无向图。 你要维护 qqq 次操作,每次操作可能是下面的其中一个: 添加一条 uuu 到 vvv 的边。 删除与 uuu 相连的所有边。 每次操作后,输出孤立点数量。 解法 发现添加只会添加一条边,而删除则可能删除许多。一条边如果被加入一次,那么最多只会被删 阅读全文
posted @ 2023-05-22 18:25 HappyBobb 阅读(30) 评论(0) 推荐(0)
摘要: 容易发现我们可以先对两个序列排序。 依次枚举 aia_iai​,那么另一个数应该 xxx 应该满足 x∈[ai−D,ai+D]x \in [a_i - D, a_i + D]x∈[ai​−D,ai​+D]。因此我们可以二分在这个区间的最大值 ppp,那么这个贡献就是 ai+pa_i+pai​+p,最 阅读全文
posted @ 2023-05-22 18:22 HappyBobb 阅读(46) 评论(0) 推荐(0)
摘要: 由于 n≤8n\leq 8n≤8,所以可以考虑 O(n!)O(n!)O(n!) 暴力枚举全排列,并且依次计算是否满足题意要求。 #include <iostream> #include <cstring> #include <algorithm> #include <cmath> #include 阅读全文
posted @ 2023-05-22 18:18 HappyBobb 阅读(13) 评论(0) 推荐(0)
摘要: 经典树套树。 考虑删除 xxx,我们找到 xxx 的位置 ppp,那么删除 xxx 后,所有在 1∼p−11 \sim p-11∼p−1 中且大于 xxx 的逆序对都没了,同时在 p+1∼np+1 \sim np+1∼n 中小于 xxx 的逆序对都没了。可以使用 CDQ,KD-TREE,分块,树套树 阅读全文
posted @ 2023-05-21 21:39 HappyBobb 阅读(82) 评论(0) 推荐(0)
摘要: 直接贪心 先忽略 ?\texttt{?}?,算出一个值 vvv。 如果 n<vn<vn<v,那么答案就是 −1-1−1。 否则 n←n−vn \leftarrow n-vn←n−v,然后按位贪心,依次选即可。 #include <bits/stdc++.h> using namespace std; 阅读全文
posted @ 2023-05-17 20:01 HappyBobb 阅读(22) 评论(0) 推荐(0)
上一页 1 ··· 15 16 17 18 19 20 21 22 23 ··· 51 下一页