摘要: 基本概念 将树中的点重新编号,使得树中任意一条路径,都可以转化成O(logn)段连续区间 1.将一棵树转化成一个序列 2.将树中的任意一段路径转化成logn段连续区间(线段树,树状数组) 重链剖分 重儿子:子树数量最多的根节点(只有一个,多个都是,任选一个即可) 轻儿子:其余儿子 重边:重儿子和父节 阅读全文
posted @ 2024-06-13 10:25 MENDAXZ 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 概念 1.经过图中所有边恰好一次的通路称为欧拉通路或欧拉路(起点终点可以不一致) 2.经过图中所有边恰好一次的回路称为欧拉回路(起点终点一致) 3.判别方法:对于无向图G,G中存在欧拉回路当且仅当G中所有度非0的点是连通的且没有奇数度数的点 对于无向图G,G中存在欧拉路当且仅当G中所有度非0的点是连 阅读全文
posted @ 2024-06-04 21:17 MENDAXZ 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 积性函数 1.利用欧拉筛求f(1),……,f(n) 根据特性,可以自己进行推敲 //欧拉筛 void euler{ f[1]=1; for(int i=2;i<=n;i++){ if(!st[i]) p[++tot]=i,f[i]=calc_f(i,1); for(int j=1;j<=tot&&i 阅读全文
posted @ 2024-05-13 12:42 MENDAXZ 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 例题1: 思路: 代码: 例题2: 思路1: 代码1: 思路2(复杂度更低): 代码2: 例题3: 思路: 代码: 例题4: 思路: 阅读全文
posted @ 2024-05-07 15:28 MENDAXZ 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 1 2 3 4 5 总和为:56/2=15; 1 3 6 10 15 总和为:567/3!=35 1 4 10 20 35 总和为:5678/4!=70 所以对于这样的序列的累加和有这样的规律: 1.k(k+1)/2 2.k(k+1)(k+2)/3! 3.k(k+1)(k+2)(k+3)/4! 4. 阅读全文
posted @ 2024-05-03 18:31 MENDAXZ 阅读(9) 评论(0) 推荐(0) 编辑
摘要: 问题:https://codeforces.com/contest/1175/problem/F 关键点:随机化+异或 1.为何要异或:忽略顺序 将1~n随机的一一映射到long long值域内,形成新的映射数组b。再根据异或的特点,只需要判断: b[1]⊕b[2]⊕…………⊕b[n]==b[a[l 阅读全文
posted @ 2024-04-23 08:45 MENDAXZ 阅读(14) 评论(0) 推荐(0) 编辑