摘要:
【传送门:BZOJ3562】 简要题意: 给出n个点,m条初始无向边,有3种操作,q个操作: A x y连接x和y D x y删除x和y的边 Q 求出有多少个连通块 题解: 并查集+DFS 因为询问很少,但是边很多,所以我们先离线将不会被删除的边拿出来,然后将永远连在一起的点缩点 这样子这个图就会变 阅读全文
摘要:
【传送门:BZOJ1084】 简要题意: 给出n行m列的矩阵,要求选出k个不互相覆盖子矩阵,使得选出的k个子矩阵的和最大,求出和 题解: DP 我的DP方程可能有些麻烦。。 首先面向数据编程,因为m<=2,所以先把m=1的情况求出来,这个就不用讲了 然后对于m=2的情况,我们设: f[i][k][0 阅读全文
摘要:
【传送门:BZOJ5039】 简要题意: 给出一个长度为n个序列,有m个操作,共为三种操作: 1 x y c表示将x到y的值全部*c 2 x y c表示将x到y的值全部+c 3 x y求x到y的值的和 题解: 同BZOJ1798 参考代码: 阅读全文
摘要:
【传送门:BZOJ1798】 简要题意: 给出一个长度为n个序列,有m个操作,共为三种操作: 1 x y c表示将x到y的值全部*c 2 x y c表示将x到y的值全部+c 3 x y求x到y的值的和 题解: 线段树嘛,区间修改加区间求值 但是关键是怎么处理乘和加的lazy标记的处理 首先肯定不能够 阅读全文
摘要:
【传送门:BZOJ3932】 简要题意: 给出n个任务,每个任务给出开始时间和结束时间还有这个任务的优先度 有m个询问,每个询问给出x和k,求第x秒的时候,优先度从小到大k个任务的优先度的和 强制在线 题解: 主席树好题 设c为这个子树有多少个任务,sum为这个子树里的权值和 先把优先度离散化,然后 阅读全文
摘要:
【传送门:BZOJ3339】 简要题意: 给出一个长度为n的数列,有m个询问,每个询问输入l,r,求出l到r之间没出现过的最小自然数 题解: 同BZOJ3585 参考代码: 阅读全文
摘要:
【传送门:BZOJ3585】 简要题意: 给出一个长度为n的数列,有m个询问,每个询问输入l,r,求出l到r之间没出现过的最小自然数 题解: 莫队+权值分块 只要处理每一个权值块总共出现多少种数,每当找到一个权值块出现的种数不等于总共的种数,就直接在这个块里找哪个没出现过就行了 参考代码: 阅读全文
摘要:
【传送门:BZOJ4196】 简要题意: 有n个软件,每个软件有一个依赖的软件(除了第一个软件),要想安装一个软件就必须要安装它所依赖的软件 有m种操作,有一种是安装某个软件,另一种是删除某个软件,如果删除了一个软件,那么所有直接或间接依赖它的软件都要删除 求出每种操作改变了多少个软件的状态 题解: 阅读全文
摘要:
【传送门:BZOJ3524】 简要题意: 给出n个数,m个询问,每个询问输入l,r,请判断区间[l,r]是否存在一个数出现的次数大于(r-l+1)/2,如果存在则输出这个数,否则输出0 题解: 主席树例题,直接在找值的时候判断是否存在左子树或者右子树出现的值>(r-l+1)/2就行了 参考代码: 阅读全文
摘要:
【传送门:BZOJ3626】 简要题意: 给出一棵树,设dep[i]为每个点与根节点的距离+1, 有m个询问,每个询问输入l,r,z 求出$\sum_{l<=i<=r}dep[LCA(i,z)]$ 题解: 读题,实际上dep[i]就表示i到根有多少个节点 那么如果要求dep[LCA(i,j)]的话, 阅读全文
摘要:
【传送门:BZOJ1930】 简要题意: 给出n个豆子和它们的坐标,保证在原点的右上方,有两个PACMAN在原点的左下方,每个PACMAN只能往右或往上移动,每移动到一个豆子所在的位置,就会把豆子吃掉,求出两个PACMAN的路径不相交的情况下,总共能吃到最多豆子 题解: 费用流 建边: st->S, 阅读全文
摘要:
【传送门:BZOJ2326】 简要题意: 给出n和m,要求计算Concatenate(1...n)%m的值,其中Concatenate(1...n)是将所有正整数1,2,…,n顺序连接起来得到的数 例如,n=13,Concatenate(1...N)=12345678910111213 题解: 矩阵 阅读全文
摘要:
【传送门:BZOJ3747】 简要题意: 共有m部电影,编号为1到m,第i部电影的好看值为w[i]。 在n天之中(从1到n编号)每天会放映一部电影,第i天放映的是第f[i]部 你可以选择l,r(1<=l<=r<=n),并观看第l,l+1,…,r天内所有的电影 如果同一部电影你观看多于一次,你会感到无 阅读全文
摘要:
【传送门:BZOJ4326】 简要题意: 给出一棵n个点的树,每条边有边权,给出m条路径 在可以将一条边的边权变成0的情况下,求出m条路径的最大值最小 题解: 树上差分+二分 首先把原来的图构建出来,然后求出原图的m条路径的长度 然后二分答案,如果有路径的长度大于二分的答案,那么说明这条路径是需要把 阅读全文
摘要:
【传送门:BZOJ4390】 简要题意: 给出一棵n个点的树,一开始所有点的点权为0,给出k个操作,每个操作输入x,y,表示将x到y的路径上的点权全部+1 求出最大点权 题解: 树上差分例题,对点差分 对于一个操作x,y,lca表示x和y的最近公共祖先,就将cf[x]++,cf[y]++,cf[lc 阅读全文