11 2022 档案
摘要:线段树 ///线段树,建树O(nlogn)、修改查询O(logn),单点修改、区间查询 //需要魔改内部的,就把泛型删掉 template<class T, class F> class SegmentTree { const int n; vector<T> node; void update(i
阅读全文
摘要:并查集 ///并查集(路径压缩),修改查询O(logn),用于维护集合关系 struct DSU { vector<int> fa; explicit DSU(int n):fa(n + 1) { for (int i = 1;i <= n;i++) fa[i] = i; } void init(i
阅读全文
摘要:比赛链接 A 题意 给一个字符串 ,对其加倍,即每个字符后面追加一个相同字符。 加倍后可以重排列,要求构造一个回文串。 题解 知识点:构造。 既然可以重排列了,那顺序是随意的了,直接翻转加在原来的后面。 时间复杂度 空间复杂度 代码 #include <bits/
阅读全文
摘要:比赛链接 A 题意 给出三个不同的数,求中位数。 题解 知识点:模拟。 显然。 时间复杂度 空间复杂度 代码 #include <bits/stdc++.h> #define ll long long using namespace std; bool solve() {
阅读全文
摘要:比赛链接 A 题意 构造两个长为 排列,使得两排列有长为 的公共前缀和长为 的公共后缀。 题解 知识点:构造。 注意到,当 时,中间段至少有两个位置可以操作使其不同,于是公共前后缀可以分别满足互不影响;否则,公共前后缀必然交叉,此时只有 $a =
阅读全文
摘要:比赛链接 A 题目 知识点:模拟。 确定开头字母,然后循环比较即可。 时间复杂度 空间复杂度 题解 #include <bits/stdc++.h> #define ll long long using namespace std; bool solve() { stri
阅读全文
摘要:比赛链接 A 题解 知识点:贪心。 注意到 , 永远不可能换到前面; 可以交换后面任意元素。 时间复杂度 空间复杂度 代码 #include <bits/stdc++.h> #define ll long long
阅读全文
摘要:比赛链接 A 题解 知识点:贪心。 我们考虑把正数和负数分开放,显然把负数和正数放在一起的结果不会更优。 时间复杂度 空间复杂度 代码 #include <bits/stdc++.h> #define ll long long using namespace std; b
阅读全文
摘要:题目链接 题目 题目描述 知名美食家小 A被邀请至ATM 大酒店,为其品评菜肴。 ATM 酒店为小 A 准备了 N 道菜肴,酒店按照为菜肴预估的质量从高到低给予1到N的顺序编号,预估质量最高的菜肴编号为1。 由于菜肴之间口味搭配的问题,某些菜肴必须在另一些菜肴之前制作,具体的,一共有 M 条形如”i
阅读全文
摘要:比赛链接 A 题解 知识点:模拟 时间复杂度 空间复杂度 代码 #include <bits/stdc++.h> #define ll long long using namespace std; bool solve() { int a, b, c; cin >> a
阅读全文