04 2020 档案
摘要:1.最大流(dinic) 1 struct MF { 2 static const int N=1e5+10,M=1e5+10; 3 int hd[N],ne,cur[N],n; 4 int d[N]; 5 struct E {int v,cp,nxt;} e[M]; 6 void init(int
阅读全文
摘要:题意:一个n*m的矩形区域,每个点上都有一些苹果,有k个人要买苹果,每个人可以买某个矩形区域内的至多x个苹果,问最多能卖出去多少个苹果。(n,m<=50,k<=1e5) 最大流,建图需要用ST表优化,这样每个人至多只需与4个点相连就能确定一个矩形区域。 1 #include<bits/stdc++.
阅读全文
摘要:题意:询问区间[l,r]上有多少个有序对(a,b)满足a+b=a xor b 相加等于异或,言外之意就是两个数每一个二进制位上都不能同时为1,那就让两个数从最高位同时往下走好了,设两个数的f,g分别表示是否撞到上界或者下界,然后dp即可。 1 #include<bits/stdc++.h> 2 us
阅读全文
摘要:题目链接 很明显的2SAT问题,和树上距离有关显然要考虑树分治。由于2-SAT不具有容斥性,点分治不方便处理,不过我们可以边分治。 边分治,分治过程中对每条边t左右两侧各建立一棵线段树,线段树上每个区间结点u(设代表的区间范围为[l,r])开两个条件结点p[u][0]和p[u][1],分别代表”边t
阅读全文

浙公网安备 33010602011771号