09 2018 档案

摘要:方法:指针扫描数组 每次选择树的重心作为树根,从树根出发进行一次DFS,求出点到树根的距离,把节点按照与树根的的距离放进数组d,设置两个指针L,R分别从前、后开始扫描,每次满足条件时答案累加R-L。,之后减去子树的满足条件的情况,删除根节点,对其子树继续上述操作,不断累加答案。 代码: 阅读全文
posted @ 2018-09-26 21:45 维和战艇机 阅读(195) 评论(0) 推荐(0)
摘要:题意:给定平面直角坐标系中的N个矩形,求它们的面积并。 题解:建立一个四元组(x,y1,y2,k).(假设y1<y2)用来储存每一条线,将每一条线按x坐标排序。记录所有的y坐标以后排序离散化。离散化之后线段树的第i个叶子节点储存的是y[i+1]-y[i]. 这里的线段树用的是一个不用下传延迟标记的做 阅读全文
posted @ 2018-09-21 21:09 维和战艇机 阅读(250) 评论(0) 推荐(0)
摘要:题目链接:https://pintia.cn/problem-sets/1036903825309761536/problems/1041156323504345088 题意:小明从某一点出发,向右方前进,只有路口是绿灯(用1代表)的时候才可通行,红灯要等待,所有红绿灯每过一秒变化一次(红->绿,绿 阅读全文
posted @ 2018-09-16 17:16 维和战艇机 阅读(482) 评论(0) 推荐(0)
摘要:设读入的数组是a,树状数组用来维护a数组区间和sum,线段树用来维护一个另一个数组ssum的区间和,区间每个点a[i]*(n-i+1),那么l-r的答案是l-r的ssum-(n-r)*(sum[r]-sum[l-1]) (纸上画一下就知道了) 阅读全文
posted @ 2018-09-09 20:26 维和战艇机 阅读(211) 评论(0) 推荐(0)
摘要:线段树,假设求(x1,y1)点的贡献,就找所有比该点出现时间晚,且x坐标大于x1的点中y最大的,贡献就是Y-y1,由于题目条件限制,不可能有x坐标大于(x1,y1)且y坐标大于y1的点,所以贡献肯定为正。 思路参考了这篇博客:https://blog.csdn.net/qq_39599067/art 阅读全文
posted @ 2018-09-09 20:20 维和战艇机 阅读(241) 评论(0) 推荐(0)