随笔分类 -  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 阅读全文
posted @ 2021-10-13 04:25 Creed-qwq 阅读(40) 评论(0) 推荐(0) 编辑
摘要:直接对树dfs一发,对每个节点建出主席树。 查询的时候主席树上二分,四个参数x+y-lca(x,y)-fa[lca(x,y)]。 如果要求支持动态加边的话,只需要一个启发式合并即可,每次暴力重构主席树。 阅读全文
posted @ 2019-02-08 05:09 Creed-qwq 阅读(280) 评论(0) 推荐(0) 编辑
摘要:https://www.cnblogs.com/butterflydew/p/10457362.html 一定注意容斥的时候-1的系数多减了1。 然后一种很常见的min-max容斥的策略就是以每个元素的出现时间作为权值。 最后一个出现的时间即为max,也就等价于全集出现的时间。 阅读全文
posted @ 2019-02-01 06:02 Creed-qwq 阅读(313) 评论(0) 推荐(0) 编辑
摘要:闵可夫斯基和,是两个欧几里得空间的点集的和,以德国数学家闵可夫斯基命名。 点集A与B的闵可夫斯基和就是{o|o=a+b},其中a属于A,b属于B。 对于凸包这种特殊的图形,它的闵可夫斯基和有一些较好的性质。 比如:凸包之间的闵可夫斯基和一定是凸包。 求凸包之间的闵可夫斯基和的方法。 把两个凸包的每一 阅读全文
posted @ 2019-01-24 23:21 Creed-qwq 阅读(1818) 评论(0) 推荐(0) 编辑
摘要:这里的并查集是按秩合并并查集。 这种方法维护生成树的时候可以维护一个点到根的权值。 但是由于合并的时候做了一个类似换根一样的操作,因此这个权值通常只能是异或之类的。 //find-union-set int top,f[N],v[N],sz[N],sk[M]; int find(int x){ret 阅读全文
posted @ 2019-01-20 12:06 Creed-qwq 阅读(165) 评论(0) 推荐(0) 编辑
摘要:也不是很懂原理,反正就是这么写的。 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 阅读全文
posted @ 2019-01-19 22:53 Creed-qwq 阅读(167) 评论(0) 推荐(0) 编辑
摘要:Pro: 从(0,0)\(\)(n,m) 给定y=x+ly=x+r两条直线 要求不能穿过(可以接触)这两条直线 求方案数 n,m,l,r<=1e6 Sol: 参考了这篇blog https://www.cnblogs.com/xzyxzy/p/9812585.html 阅读全文
posted @ 2019-01-19 18:59 Creed-qwq 阅读(200) 评论(0) 推荐(0) 编辑
摘要:写半平面交的时候注意以下几点 1.考虑x,y是否有正负号限制。 2.注意特判分母为0的情况。 3.对于分母正负不确定的情况分类讨论。 #include<iostream> #include<cctype> #include<cstdio> #include<cstring> #include<str 阅读全文
posted @ 2018-12-24 17:02 Creed-qwq 阅读(228) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示