摘要: "题目" 开一个堆,先把所有$a[i]+b[1]$压进优先队列。 然后每次把最小的取出来,把对应的$a[i]$的下一个$b[j]$拿出来加进去。 阅读全文
posted @ 2019-09-16 10:08 Shiina_Mashiro 阅读(140) 评论(0) 推荐(0) 编辑
摘要: "Link" 把$x$离散化,$y$降序排序,每种颜色开一个set。 因为我们需要不包含所有颜色,所以强制某种颜色不被包含即可。 对于某一个点,如果选出的矩形以其为下边界(不取到),左边界就是前驱的横坐标,右边界就是后继的横坐标(都取不到)。 前驱后继可以使用~~平衡树~~set或链表维护,计算一个 阅读全文
posted @ 2019-09-16 09:53 Shiina_Mashiro 阅读(277) 评论(0) 推荐(0) 编辑
摘要: "Link" 首先我们想想不加边删边怎么做。 先随便找一棵生成树,然后枚举每条边,把新生成的环的长度放到线性基里。 对于每次询问,把树上路径放到线性基里查询最小值。 如果有加边,每次加边就好了。 想想对于删边应该如何做。 我们把每次询问加一个时间,那么我们每条边都有一个存在时间段。 对于每次询问,只 阅读全文
posted @ 2019-09-15 17:26 Shiina_Mashiro 阅读(262) 评论(0) 推荐(0) 编辑
摘要: "题目" 简化题意:你需要维护$n$个集合,集合元素为二元组$(x,v)$。集合$i$的产生方式是以某个原有集合$p_i$为样本,扩展或删除一个元素后得到新集合。有$q$次询问,每次给出$y$并指定一个集合$i$,要求从集合$i$中找出一个元素,最小化$(x−y)^2+v$。 先拆式子$(x y)^ 阅读全文
posted @ 2019-09-14 16:59 Shiina_Mashiro 阅读(198) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2019-09-14 13:58 Shiina_Mashiro 阅读(10) 评论(0) 推荐(0) 编辑
摘要: "题目" 预处理$L[p]$表示其左边第一个数值大于等于它的数的位置加一,$R[p]$表示其右边第一个数值大于等于它的数的位置减一。 考虑对于$p$,最大值为$p$的区间为$[L[p],R[p]]$,也就是左端点在$[L[p],p]$,右端点在$[p,R[p]]$。 我们取其中长度小的一段。 比如说 阅读全文
posted @ 2019-09-12 15:51 Shiina_Mashiro 阅读(117) 评论(0) 推荐(0) 编辑
摘要: "题目" 我们按$x$分治。 然后分治完合并时归并降序排列$y$。 然后维护右边的最靠左的从左上到右下的单调栈,左边的最靠右的从右上到左下的单调栈。 遍历左边的点, 每次把纵坐标大于它的右边的点加入单调栈。 对于一个左边的点,在右边的单调栈上二分找出纵坐标大于这个点上面那个点的第一个点。 阅读全文
posted @ 2019-09-11 20:50 Shiina_Mashiro 阅读(242) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2019-09-10 22:25 Shiina_Mashiro 阅读(10) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2019-09-08 22:29 Shiina_Mashiro 阅读(6) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2019-09-07 16:19 Shiina_Mashiro 阅读(9) 评论(0) 推荐(0) 编辑