
重要
After__rain
这个作者很懒,什么都没留下…
展开
-
FMT与子集卷积
FMT与子集卷积求Cx=∑i⋃j=xai∗bjC_x = \sum_{i\bigcup j = x}a_i*b_jCx=∑i⋃j=xai∗bjsol.构造一个FMT(A)=∑i⊂xaiFMT(A) = \sum_{i\subset x}a_iFMT(A)=∑i⊂xaiFMTx(A)∗FMTx(B)=∑k⊂x∑i⋃j=kai∗bj=∑k⊂xCk=FMTx(C)FMT_x(A) * FMT_x(B) = \sum_{k \subset x}\sum_{i \bigcup j = k}a_i原创 2021-02-12 17:20:09 · 330 阅读 · 0 评论 -
二项式系数
有趣的一些小性质对于杨辉三角来说,有一个非常好的性质你可以发现对于任意一个杨辉三角的3x3格子来说x1,1, x1,2, x1,3x2,1, x2,2, x2,3x3,1, x2,2, x3,3有:x1,1∗x2,3∗x3,2=x1,2∗x3,3∗x2,1x_{1,1} ,\ x_{1,2} ,\ x_{1,3}\\x_{2,1} ,\ x_{2,2} ,\ x_{2,3}\\x_{3,1} ,\ x_{2,2} ,\ x_{3,3}原创 2021-02-01 21:19:43 · 332 阅读 · 0 评论 -
Sterm-Brocot Tree
比较有趣的结构:还有很多性质令自己与父亲分别为:ab, cd\frac{a}{b} ,\ \frac{c}{d}ba, dc 有c∗b−a∗d=1c*b - a * d = 1c∗b−a∗d=1令自己与对称的自己分别为:ab, cd\frac{a}{b} ,\ \frac{c}{d}ba, dc 有c∗b−a∗d=3c*b - a * d = 3c∗b−a∗d=3任何一个既约真分数(分子分母互质)都出现比如可以二分来查找第k大比如用矩阵来写,原创 2021-01-31 20:31:05 · 209 阅读 · 0 评论 -
GDKOI2021 day1 拟阵
三条性质 拟阵(E,I)1:空集属于该拟阵2:每个在拟阵的集合 的子集也在拟阵里面3:对于∣A∣|A|∣A∣ < ∣B∣|B|∣B∣ 存在 B/A中 有一个b . 使得{b}+A\{b\} + A{b}+A 属于 I常见 拟阵:base:极大独立集,加上任何一个grand set的元素就不独立可以用base集来定义拟阵rank:任何一个base大小相同,叫r(A),A是grand setr(A + {x}) - r(A) = 0/1A是B的子集r(原创 2021-01-29 17:11:18 · 248 阅读 · 0 评论 -
成功后面皆是坚持
成功后面皆是坚持我认为,成功的背后一定是坚持,没有坚持,除非拥有出人的才干,不然定不会成功。坚持,乃成功之母也。若非有出人之才干,做事无坚持者,则做事定皆无成也。自古以来,就有很多的名人,靠自己的坚持来获取成功,例如孙中山,毛泽东。。。。。。他们都是自幼家境贫寒,早早的就懂得生存之道,不敢浪费半点光阴,把一切的时光投入到学习生活中,这便是他们成功的原因从古至今,史上列有诸多名人,皆以坚持成功,以孙中山,毛泽东者为例,其幼年家境寒苦,处于立命之年而笃定生存之道,未曾置光阴于琐屑之事,倾其所能于学习生活原创 2021-01-20 12:36:16 · 140 阅读 · 0 评论 -
网络流小trick
原创 2021-01-06 10:29:19 · 108 阅读 · 0 评论 -
FFT学习笔记
最近终于能干自己想干的事情了问题引入:快速求多项式乘法(卷积)引理:n个不同点的点集可以确定唯一 的n次多项式记相乘的两个多项式为A,BA,BA,BA,BA,BA,B的卷积记为CCCsolution1O(n2)O(n ^ 2)O(n2)的多项式乘法solution2根据引理,可以任意取A,BA,BA,B上 ∣A∣+∣B∣|A| + |B|∣A∣+∣B∣个点然后把 其纵坐标相乘,故在通过这∣A∣+∣B∣|A| + |B|∣A∣+∣B∣个点来求出C复杂度 O(n3)[高斯原创 2020-12-12 16:29:41 · 205 阅读 · 0 评论 -
【LGR-078】洛谷 10 月月赛 II T2深海少女与胖头鱼
显然:设A[i][j]位i只鱼没圣盾,j只鱼有圣盾则转移为A[i][j]=(A[1][i+j−1]+1)∗(j/(i+j))+(A[i−1][j]+1)∗(i/(i+j))[i>=1且转移(1)要求[j>=2]]设A[i][j]位i只鱼没圣盾,j只鱼有圣盾\\则转移为\\A[i][j] = (A[1][i + j - 1] + 1) * (j / (i + j))+(A[i - 1][j] + 1) * (i / (i + j))[i >= 1 且转移(1)要求[j>=2]原创 2020-10-19 17:47:24 · 333 阅读 · 0 评论 -
结论
对于一个大小为n的数集该数集的所能组成的数的中位数为sigama(数集) / 2对于排除空集外的中位数为原来中位数的后继依次类推思考:如何 删除一个数集 并且动态求中位树(别用平衡树之类的东西)...原创 2020-09-29 20:37:29 · 197 阅读 · 1 评论 -
牛客IOI周赛18-提高组(自闭,三题快速mi)
A,先把各个区间翻转映射为一段序列----可以发现,通过这段序列转化与原问题等价那么可以套用快速mi的思想。。。。直接做就好了考场上思路假了,打表推式子推了一年。。。。。但还是没找出规律。。。。套路见太少了#include<bits/stdc++.h>#define MAXN 200005typedef long long ll;using namespace std;int n,m,l[15],r[15],num2[MAXN],num[MAXN],num3[MAXN];l原创 2020-09-06 09:11:29 · 294 阅读 · 0 评论 -
前鬼后鬼的守护/搬运干草捆
题意:给你一个序列A,让你构造一个不降序列,使得sigama(abs(a[i] - x[i]))最小神题待补原创 2020-09-04 21:30:03 · 161 阅读 · 0 评论 -
可撤销贪心
可撤销贪心是一种思想,使得当前的贪心策略可以优化过去的抉择一般有3个要求1.答案可以分步计算2.具有较明显的最值特点3.可以通过一些数据结构来动态维护4.答案可以在较好的复杂度内还原成之前的答案1.种花:题目大意:在一个长度为n的环型序列中取出m个数使这m个数的和最大,且要求这m个数互不相邻。O(nlogn)O(nlogn)O(nlogn)做法:考虑选择了一个元素:那么他左右的两个元素就不能选,然后这个元素就不能选了那么我们用构造的思想去想,我们能不能再选一次这个元素呢?再选择这个元素,就原创 2020-09-04 20:53:19 · 264 阅读 · 0 评论 -
codeforces 2000左右的题 一句话题解
CF296B Yaroslav and Two Strings类似数位dp,并不是很会CF41D Pawn裸题,直接根据 get % k get /k dp即可CF362C Insertion Sort根据冒泡排序的交换次数就是逆序对的个数,可以通过BIT等数据结构,来算一个数对于逆序对的贡献,直接n^2枚举交换即可CF229D Towers先对于原序列划分一波区间的增减性,有个很显然的结论是对于 一个先递减再递增的峰谷,要把递增的段,与递减的合并,才能有一个递减的区间,那么原创 2020-08-29 10:59:10 · 438 阅读 · 0 评论 -
cdq套cdq做三维偏序
首先考虑消掉第一维 (直接按第一关键字排序)然后本来可以套一层cdq然后用BIT来做的,但为了做四维偏序做铺,我又打了cdq套cdq其实,可以浅显的理解为每一次做外层cdq,都打了一个标记,对于一直处在左边的数点,以及对于一直处在右边的数点,很明显有一个偏序关系,也就是可以累加答案。。。。然后就可以扩展到n维偏序#include<bits/stdc++.h>#define MAXN 400005using namespace std;int n,k,tot,cnt[MAXN],原创 2020-08-27 09:06:32 · 367 阅读 · 0 评论 -
cdq分治
对于能用cdq分治的题目需要满足3个条件可以离线修改不会相互影响询问不会相互影响归并排序求逆序对以及二维偏序很好的对cdq分治做了一个样例这里就不在赘述cdq分治处理单点修改,区间查询,可离线首先,单点修改,区间查询,可离线,刚好满足cdq分治的使用要求那么考虑怎么用cdq分治的思想解决这个问题考虑现在有两段操作 依次按照 操作序号的大小以及先修改再查询有序对于为什么每次只处理左端的修改,以及右端的询问,可以通过一张图来看比如说,我现在有个询问,在划圈处很显然,有两段对他做了操原创 2020-08-26 17:33:47 · 131 阅读 · 0 评论 -
Pollard-Rho算法
用途:分解大数因数复杂度 : O(很快)基本思路:考虑构造一个序列x1,x2,x3....xnx1,x2,x3....xnx1,x2,x3....xn如果有$d = gcd(abs(xi , xi + 1) , N) > 1 $等价于 d是N的一个因数但,构造序列的方法有很多,该算法选用了一种好写 + 好想的 : (伪随机方法构造序列)令Xi=(Xi−1∗Xi−1+C)令Xi = (Xi - 1 * Xi - 1 + C) % N令Xi=(Xi−1∗Xi−1+C)然后该算法的基础原创 2020-08-16 21:13:15 · 305 阅读 · 0 评论 -
acwing2280. 最优标号
太久没做网络流的 思维题了,智力急速下降。。。这个题很妙主要分析建图想法摘自注意,多条边的交叉情况也是基于这两种的。发现它具有网络流的性质吧?所以考虑它怎么和网络流联系在一起。把初始点权为1的看做S集合,点权为0的看做T集合。我们其实要做的就是处理完S到T的所有边,使代价最小。把代价当做割开一条路径的花费,所求问题即为割最少的边使得S到T不连通。主要思想就是 :: 划分集合 + 隔绝集合很显然对于一个点来说,任意有两个点权值不同的显然就要给这个点赋权来断开那么对于多叉的同理对于一段连续的无原创 2020-08-12 14:54:17 · 215 阅读 · 0 评论 -
FHQ-TREAP && 可持久化平衡树
FHQ—TREAP只要学过splay,线段树合并分裂,就非常好学吧。。。。持久化的话,就是在合并分裂的时候,新建一个节点来保存,以免对先前节点造成影响。。。。FHQ-TREAP(持久化)#include<bits/stdc++.h>#define MAXN 10000005#define maxn 600005typedef long long ll;using namespace std;int n,tot,rt[maxn];ll mod;struct node{原创 2020-08-08 17:51:27 · 222 阅读 · 0 评论 -
luoguP5353 树上后缀排序
刚学完SA,过来送命了我一开始对SA有一点奇妙的误解。。以为他是只能在单字符串里面搞后缀排序的。。。没想到,SA只是一种思想。。。实际上,不管你是线性,树上,甚至是图上。有序,有元素,大力SA(逃)来描述一下这题的思路吧。。。。我们先预处理2^k级祖先。然后再在这树上对每个节点做SA。。。。。。发现完全没想法。。。。自闭ing。。。。先咕掉,做一些关于height数组的题先...原创 2020-07-29 12:45:51 · 254 阅读 · 0 评论 -
后缀数组个人理解
#include<bits/stdc++.h>#define MAXN 1000005using namespace std;int tong[MAXN],sa[MAXN],tp[MAXN],rank[MAXN],n,m;char a[MAXN];int get(char c) { if(c >= '0' && c <= '9') return c - '0' + 1; if(c >= 'A' && c <= 'Z') r原创 2020-07-29 11:17:04 · 149 阅读 · 0 评论 -
luoguP4719 【模板】“动态 DP“&动态树分治
很容易写出转移方程以及状态的定义F[i][0/1]:F[i][0/1]:F[i][0/1]:以i节点为根的子树,选/不选i节点的最大权独立集F[i][0]=sigam(max(f[son][0],f[son][1]))F[i][0] = sigam(max(f[son][0] , f[son][1]))F[i][0]=sigam(max(f[son][0],f[son][1]))F[i][1]=val[i]+sigam(f[son][0])F[i][1] = val[i] + sigam(f[son]原创 2020-07-26 21:18:59 · 132 阅读 · 0 评论 -
P4719 【模板】“动态 DP“&动态树分治
咕咕咕掉。。。。什么玩意啊。。。自闭ing#include<bits/stdc++.h>#define MAXN 100005using namespace std;int n,m,h[MAXN],tot,a[MAXN];int f[MAXN],dep[MAXN],dfn[MAXN],dex,sz[MAXN],ch[MAXN],tp[MAXN],id[MAXN];int ycl[MAXN][2],ans[2];struct node{ int from,to,next;原创 2020-07-25 17:15:58 · 147 阅读 · 0 评论 -
luogu P1084 疫情控制
#include<bits/stdc++.h>#define MAXN 70005using namespace std;int n,h[MAXN],tot,ff[MAXN][25],cost[MAXN][25],m,g[MAXN],l,r,mid,best,sum[MAXN],f[MAXN];int found[MAXN],vis[MAXN],al;struct node{ int from,to,cost,next;}e[MAXN << 1];int js,j原创 2020-07-15 15:14:33 · 169 阅读 · 0 评论 -
luoguP1429 平面最近点对(加强版)
这个东西比较强。。。。。当然,可以交智商税(开发KD—ree)然后我并不会。。于是乎只能看题解。。。。就是把平面一直分割然后每次根据左右得出的结论进行剪枝。。。然后就可以优化过掉这题大概是O(NlogN)O(NlogN)O(NlogN)上界挺松的#include<bits/stdc++.h>#define MAXN 3000001using namespace std;int n,q[MAXN],js;struct node{ double x,y;}t[MAXN]原创 2020-07-07 18:26:03 · 147 阅读 · 0 评论