集合内的最小异或对(使用set)
摘要:牛客 最小异或对 求数组集合内的最小异或对 结论: 一个集合内的最小异或对,一定是排序后的两个向量相邻元素。秩序记录其相邻元素的异或值即可。 一个set存储元素值,另一个元素存储异或值。 增加元素时,删除该元素前驱和后继异或,增加上该元素和前驱后继的异或 //#include<bits/srdc++
阅读全文
posted @
2023-03-26 13:58
rain_wind_read
阅读(162)
推荐(0)
并查集应用
摘要:codeforce 题目大意: 对一个数组多次区间更改,将该区间内的所有数字都更改为其各数码位上的数码之和。 每个位置的数的更改次数是有限的,将不能再更改的数据区间连到一个连通块内。 对于一个刚修改后不能再更改的数,将其下一个指向改为ne[i]++; 并查集初始化时,要比总数据的个数n多初始化一个
阅读全文
posted @
2023-03-09 11:51
rain_wind_read
阅读(30)
推荐(0)
prim算法求最小生成树
摘要:#include<iostream> using namespace std; const int N=110; const int INF=0x3f3f3f3f; int g[N][N],dist[N]; bool st[N]; int main() { int n;cin>>n; for(int
阅读全文
posted @
2023-03-04 20:51
rain_wind_read
阅读(29)
推荐(0)
线段树
摘要:使用线段树进行多点更改和多点查询 建树 #include<iostream> using namespace std; typedef long long ll; const int N=2e5+10; struct segm { int l,r; ll v; } tr[N*4]; ll a[N];
阅读全文
posted @
2023-03-04 14:36
rain_wind_read
阅读(29)
推荐(0)
gcd的最小生成树
摘要:牛客暑期训练 6 E 阿宁有一个n个节点的完全图,编号从1到n。对于点i和点j(i<j),如果j−i≤k,那么j之间有一条边权为lcm(i,j)的边,否则有一条边权为 gcd(i,j)的边。 阿宁想求出该完全图的最小生成树。 思路:所有节点与1的lcm为其本身i,与1的gcd为1.(一个数和质数的g
阅读全文
posted @
2023-02-10 11:10
rain_wind_read
阅读(80)
推荐(0)