摘要: 给定n个结点,q次询问,每次询问分为三类: 1 x y,将x和y两个点连通,如果已经连通则不操作。 2,撤销上一次连通操作,如果全部撤销完了则不操作。 3 x y,询问x和y是否连通。 对于每个询问3,输出结果YES或NO。 提示:可销撤并查集,使用按秩合并或启发式合并,不能用路径压缩。合并时记录操 阅读全文
posted @ 2024-06-22 17:57 chenfy27 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 给定长度为N的数组A,以及M条指令,每条指令可能是以下两种之一: 1 x y,查询区间[x,y]中的最大连续子段和。 2 x y,把A[x]改成y。 对于每个询问,输出一个整数表示答案。 数据限制:N<=5e5, M<=1e5, |A[i]|<=1000。 提示:线段树,每个区间需要维护答案、前缀、 阅读全文
posted @ 2024-06-20 21:48 chenfy27 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 动物王国中有3类动物A,B,C,构成食物链:A吃B,B吃C,C吃A。现有N个动物,每个动物都是A,B,C中的一种,有K个描述: 1 X Y,表示X和Y是同类 2 X Y,表示X吃Y 当一句话满足以下条件之一时,为假话,否则为真话。 与前面的话有冲突 X或Y比N大 X吃X 输出假话总数。 提示:种类并 阅读全文
posted @ 2024-06-19 22:00 chenfy27 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 给定N名罪犯和M组仇恨关系,第i组关系用a[i],b[i],w[i]标识,表示编号为a[i]与b[i]的罪犯之间的仇恨值为w[i]。现要将所有罪犯关押在两个房间里,使得同一房间内任意两名罪犯的最大仇恨值最小,求该最小值。 提示1:排查+种类并查集。类似最小生成树的做法,按仇恨值从大到小排序,按顺序枚 阅读全文
posted @ 2024-06-19 21:53 chenfy27 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 给定N条直线、M组位置关系(平行或垂直)和Q个查询,要求输出共有多少组平行线,并回答询问的直线之间的位置关系。 提示:种类并查集。 #include <bits/stdc++.h> using i64 = long long; struct DSU { std::vector<int> f; DSU 阅读全文
posted @ 2024-06-19 21:41 chenfy27 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 给定长度为N的数列A,以及M条指令,每条指令可能是以下两种之一: C l r d,表示把A[l],A[l+1],...A[r]都加上d。 Q l r,表示查询A[l],A[l+1],...A[r]的最大公约数。 对于每个询问,输出一个整数表示答案。 分析:利用差分数组,将区间修改转换成两次单点修改。 阅读全文
posted @ 2024-06-18 23:31 chenfy27 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 01背包 有N种物品,第i种物品的体积是v[i],价值是w[i],每件物品最多只能选1件。有一个容量为V的背包,问将哪些物品装入背包,可使这些物品的总体积不超过背包,并且总价值最大,输出最大价值。 #include <bits/stdc++.h> using i64 = long long; voi 阅读全文
posted @ 2024-06-18 23:01 chenfy27 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 给定一个下标从0开始的只包含正整数的数组nums,你可以将数组中任意元素的值增加至多1,修改后,从数组中选择一个或多个元素,并确保这些元素升序排列后是连续的,求它的最大长度。 将数组排序,然后从大到小处理,每个元素分别计算以它开始能得到的长度,包含它本身和加1后两种情况,递推即可。 class So 阅读全文
posted @ 2024-03-31 12:49 chenfy27 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 排队时前面有n个人,现在想通过插队来排进队伍前m,每次插队时可以选择前面的某个人x,与他互换位置,需要支付a[x]的费用给x,并且还要支付给中间每个人b[i]的费用。现在给定a[i]和b[i],求最小花费。 1<=m<=n<=2e5; 1<=a[i],b[i]<=1e9 对于中间的某个人,要么经过他 阅读全文
posted @ 2024-03-28 12:27 chenfy27 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 有n只猫,重量分别为C[i],要将所有小猫都放进缆车里,缆车的最大承重为W,问至少要多少辆缆车才能装下? 1<=n<=18; 1<=C[i]<=W<=1e8 n比较小,可以暴力搜索,dfs(x,g)表示当前已经分了g个组,考虑如何分配第x只猫,枚举将猫放进g组中的每一个,另外也可以让它单独一组。按体 阅读全文
posted @ 2024-03-27 20:40 chenfy27 阅读(7) 评论(0) 推荐(0) 编辑