ANJHZ的博客

08 2021 档案

2021.08.15 FWT快速沃尔什变换
摘要:先把模板代码贴在这,其他的明天再写) #include <bits/stdc++.h> using namespace std; typedef long long ll; const int N=1e6+11; const long long mo=998244353; int n,m; ll a 阅读全文

posted @ 2021-08-15 23:24 ANJHZ 阅读(43) 评论(0) 推荐(0) 编辑

2021.08.14 fft(快速傅里叶变换)
摘要:主要就是把平时用的系数表示法转换成点值表示法。点值表示法的好处就在于两个多项式相乘的时候可以O(n)运算。 取一般的点把系数表示法转换为点值表示法是O(n2)的,我们选取单位根可以避免这个问题。 先把f(x)补成次数为2的次幂-1的多项式,再根据次数奇偶分成两个多项式: (这里f2(x)写错了,应该 阅读全文

posted @ 2021-08-15 15:26 ANJHZ 阅读(118) 评论(0) 推荐(0) 编辑

2021牛客暑期多校7-xay loves floyd
摘要:题意是如果把floyd算法的k循环写在了最内层,有多少dis[i][j]还是正确的。n是顶点数,m是单向边数,n<=2000,m<=5000。 dis[i][j]是i到j的最短路长度,w[i][j]是i到j的边权。 注意到m只有5000,图不是很稠密,可以做n次Dijkstra得到dis数组,这部分 阅读全文

posted @ 2021-08-13 16:53 ANJHZ 阅读(99) 评论(0) 推荐(0) 编辑

2021牛客暑期多校7-F-xay loves trees (dfs序+线段树+队列)
摘要:题意简单来讲就是在第一棵树上找一条链,使得这条链上每一对点在第二棵树上不构成祖先子孙关系。 性质1:如果u-v是树1上的一条链,其中u是v的祖先,且这条链不满足在第二棵树上的要求,那么fau-v同样不满足要求。因此可以考虑对于树1上的每个点v,找到深度最浅的满足题目要求的祖先u,两者深度相减就是v的 阅读全文

posted @ 2021-08-12 18:15 ANJHZ 阅读(65) 评论(0) 推荐(0) 编辑

2021.08.10 静态区间第k小
摘要:离散化后用可持久化权值线段树处理。 查询的时候比较第r个版本和第l-1个版本的信息,若左结点cnt之差>=k,说明答案在左结点,递归query(左结点,k),否则答案在右结点,递归query(右结点,k-左结点cnt之差)。 可持久化线段树的写法参考:2021.08.10 可持久化线段树 - ANJ 阅读全文

posted @ 2021-08-10 17:38 ANJHZ 阅读(58) 评论(0) 推荐(0) 编辑

2021.08.10 可持久化线段树
摘要:学了之后发现也没多难,就是一种把所有历史版本存下来的线段树。 实现是基于这条优秀的性质:每次操作影响的结点只有log2N个。基于此性质,我们每次修改的时候就把线段树上每个需要修改的结点进行克隆(clone)。对于被克隆的结点,其左右结点中的一个需要继续递归下去修改,另一个则不用(因为是单点修改),就 阅读全文

posted @ 2021-08-10 16:45 ANJHZ 阅读(49) 评论(0) 推荐(0) 编辑

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示