随笔分类 - M.模板
摘要:#include<bits/stdc++.h> #define N 1100000 #define db double #define ll long long #define ldb long double #define ull unsigned long long using namespac
阅读全文
摘要:直接对树dfs一发,对每个节点建出主席树。 查询的时候主席树上二分,四个参数x+y-lca(x,y)-fa[lca(x,y)]。 如果要求支持动态加边的话,只需要一个启发式合并即可,每次暴力重构主席树。
阅读全文
摘要:https://www.cnblogs.com/butterflydew/p/10457362.html 一定注意容斥的时候-1的系数多减了1。 然后一种很常见的min-max容斥的策略就是以每个元素的出现时间作为权值。 最后一个出现的时间即为max,也就等价于全集出现的时间。
阅读全文
摘要:闵可夫斯基和,是两个欧几里得空间的点集的和,以德国数学家闵可夫斯基命名。 点集A与B的闵可夫斯基和就是{o|o=a+b},其中a属于A,b属于B。 对于凸包这种特殊的图形,它的闵可夫斯基和有一些较好的性质。 比如:凸包之间的闵可夫斯基和一定是凸包。 求凸包之间的闵可夫斯基和的方法。 把两个凸包的每一
阅读全文
摘要:这里的并查集是按秩合并并查集。 这种方法维护生成树的时候可以维护一个点到根的权值。 但是由于合并的时候做了一个类似换根一样的操作,因此这个权值通常只能是异或之类的。 //find-union-set int top,f[N],v[N],sz[N],sk[M]; int find(int x){ret
阅读全文
摘要:也不是很懂原理,反正就是这么写的。 void insert(int x) { if(!top){s[++top]=x;return;} int LCA=lca(x,s[top]); while(top>1&&dep[s[top-1]]>=dep[LCA])add(s[top],s[top-1],di
阅读全文
摘要:Pro: 从 给定和两条直线 要求不能穿过(可以接触)这两条直线 求方案数 Sol: 参考了这篇blog https://www.cnblogs.com/xzyxzy/p/9812585.html
阅读全文
摘要:写半平面交的时候注意以下几点 1.考虑x,y是否有正负号限制。 2.注意特判分母为0的情况。 3.对于分母正负不确定的情况分类讨论。 #include<iostream> #include<cctype> #include<cstdio> #include<cstring> #include<str
阅读全文