07 2022 档案
摘要:传送门 #include <bits/stdc++.h> using namespace std; const int N = 1e3 + 10; int n, m, p[N]; int findd(int x) { while(x != p[x]) x = p[x] = p[p[x]]; retu
阅读全文
摘要:由于看不懂位运算版的树状数组求第k大,只能学学二分,优秀的log²复杂度,可以接受! 算法核心:由于树状数组自带求比自己小的数有几个,我们可以求第k小, 公式:第k大 可以转化成 = 求第(n(元素总个数) - k + 1)小 例如求1 2 8 10 12,第2大,我们是不是转化成求第3小。话不多说
阅读全文
摘要:st表预处理,时间复杂度nlogN,适用于n较小,一般在1e5级别,查询m非常的情况下,很适合用st表预处理,然后查询区间最值,先把模板给出来。 #include <bits/stdc++.h> using namespace std; const int N = 1e5 + 10; int n,
阅读全文
摘要:#P6348 [PA2011]Journeys 传送门 线段树可以用来优化一些特殊的建边,特别是n方级别的建边,我们可以建一颗入树, 一颗出树,[a, b]->[c, d],可以借助建造两个虚点完成。 如图所示 左边是入树, 右边是出树, 蓝色边权为0,当我们需要从[a, b]->[c, d]建边可
阅读全文