随笔分类 - 题解。蒟蒻
摘要:JSH师兄来讲课,于是也弄了场比赛给我们做。。。被虐。。。A.简单的图论题嗯求一个拓扑图中每个点的可达点数量,n=10000嗯记忆化搜索,但是有可能搜到重复的点,于是我们不搜索可达点数量,转成搜索可达点集,这个可以用一个bool数组记录。于是STL有某种东西叫做bitset(长知识// Proble...
阅读全文
摘要:替罪羊树套权值线段树,其中替罪羊树可以满足插入的操作。#include #include #include #include #include #include #define rep(i, l, r) for(int i=l; il=t->r=blank; t->sum++; if (l==r) ...
阅读全文
摘要:将问题离线倒序处理,问题变成动态加点维护凸包。#include #include #include #include #include #include #include #include #define rep(i, l, r) for(int i=l; i=r; i--)#define maxn...
阅读全文
摘要:先把位于凸包的点求出,然后n^2枚举每两个点x,y,接着左右边找个离线最远的点。可以知道,当x不变y单调递增时,两边距离最远的两点也在单调递增。于是可以使用旋转卡壳。#include #include #include #include #include #include #include #def...
阅读全文
摘要:先求半平面交,然后建塔的地方肯定是在半平面交的交点上或者是在地面线段的交点上。#include #include #include #include #include #include #include #define rep(i, l, r) for(int i=l; i0; return a.a...
阅读全文
摘要:半平面交模版题。。#include #include #include #include #include #include #define rep(i, l, r) for(int i=l; i0; return a.ang0;}int n, m, cnt;int main(){ n=read()...
阅读全文
摘要:依旧转成不等式组,然后半平面交。#include #include #include #include #include #include #define rep(i, l, r) for(int i=l; i0; return a.ang0;}void hpi(int x){ int cnt=0;...
阅读全文
摘要:转成二元一次不等式组,然后半平面交。#include #include #include #include #include #include #define rep(i, l, r) for(int i=l; ib.k || (a.k==b.k && a.b>b.b);}int n, v[maxn...
阅读全文
摘要:首先,我们可以舍弃掉第三维,那样的话每种金属就是平面上的点了。对于任意两个点x,y,假如用户点都不在右边,则从x至y连条长度为1的有向边。然后Flody求个最小环。#include #include #include #include #include #include #include #defi...
阅读全文
摘要:几何题。。。先把所有圆储存起来,然后对于每个圆我们求得之后放下的圆挡住了的部分,求个并集,并把没被挡到的周长加进答案。#include #include #include #include #include #include #include #define rep(i, l, r) for(int...
阅读全文
摘要:转成矩阵连乘后,矩阵快速幂加速解决。一开始没把需要longlong的变量补全。。而且没初始化2333#include #include #include #include #include #include #include #define rep(i, l, r) for(int i=l; i>1...
阅读全文
摘要:数论。。。答案就是前n-1个欧拉函数的总和再*2+1#include #include #include #include #include #include #include #define rep(i, l, r) for(int i=l; i<=r; i++)#define clr(x, c)...
阅读全文
摘要:线段树即可。。。区间各种混乱。。。开闭区间的话,可以在每两个数x,y中插入两个数,左边那个无限接近大于x,右边那个无限接近小于x。U操作:将[x,y]修改为TrueI操作:将除了[x,y]以外修改为FalseD操作:将[x,y]修改为FalseS操作:将[x,y]真假反转C操作:I操作+S操作#in...
阅读全文
摘要:LCT模版题。。。。#include #include #include #include #include #include #include #define rep(i, l, r) for(int i=l; in)#define l(x) c[x][0]#define r(x) c[x][1]...
阅读全文
摘要:树链剖分模版题。#include #include #include #include #include #include #include #define rep(i, l, r) for(int i=l; in)#define k(x) Key[x]#define t(x) Tree[x]#de...
阅读全文
摘要:树链剖分模版题。#include #include #include #include #include #include #include #define rep(i, l, r) for(int i=l; in)#define k(x) Key[x]#define t(x) Tree[x]#de...
阅读全文
摘要:离线做法:分别处理每个编号上的各种询问和操作,接着就能用树状数组维护。#include #include #include #include #include #include #include #define rep(i, l, r) for(int i=l; i0) now+=s(x), x-=...
阅读全文
摘要:神级数据结构维护题。。。Splay练手题。#include #include #include #include #include #include #include #define rep(i, l, r) for(int i=l; i q;inline void update(int x){ i...
阅读全文
摘要:本题被描述者现在才来做这道题。。。对我就是KPM。。。先Orz云神吧~把所有字符串反向建立一棵Trie,然后建立DFS序,那么Trie上的每个点的子树就对应着DFS序上的一段数。然后将每个字符串的标号插入,无修改的话只需要主席树。#include #include #include #include...
阅读全文
摘要:貌似是先把各个子串处理成各个Hash值,然后离散化,然后这道题就变成询问区间[x,y]中有没有数字k。主席树直接上。。。#include #include #include #include #include #include #include #define rep(i, l, r) for(in...
阅读全文

浙公网安备 33010602011771号