Description: 题解: 显然满足二分性. 并且每一条边要不选l要不选r. 二分的那条链肯定要选l. 考虑有两个人在走最短路,一个人一开始必须走二分的那条链,要求第一个人走的比第二个人快. 安排的话也比较简单,第一人先走到这条边就给l,第二个人就给r. 还有一种想法,先只给二分的链l,其它都给r,跑一遍最短路,设为dis1. 然后再从二分的链的结尾开始,每条边都设为l,跑最短路,dis2. 然后一个点x的dis2[x]+二分的链长<=dis1[x],那么就可以走这个点,否则不能走,最后看…
题目描述 Description Input Output Sample Input 见下载 Sample Output 见下载 Data Constraint 题解 lj题卡线段树 求出每个右端点往左第一个跳到的点,可以变成一棵树 如果r1r2(r1<r2)中间没有把两个点分开的弦,那么就是r1的深度 用一个单调栈可以求出往左跳到的点(每次把若干小区间合并),但是有可能一条弦跳到的位置会被向后的一条弦切断 所以再用一个单调栈求出每个右端点向左第一个跨过它的左端点,如果再维护过程中出现了交叉的情…
9.1 辣鸡 可以把答案分成 每个矩形内部连线 和 矩形之间的连线 两部分 前半部分即为\(2(w-1)(h-1)\),后半部分可以模拟求(就是讨论四种相邻的情况) 如果\(n^2\)选择暴力模拟是有\(35pts\)的 发现按横坐标排序后,如果有一矩形与当前矩形横向不相邻,则之后矩形都是没有贡献的 所以枚举时比较横坐标视情况跳出 因为会产生贡献的矩形对并不多(不超过\(4e5\),具体还会小),所以这样优化以后可以通过 9.2 模板 暴力跳祖先的话是有\(30pts\)的,经过一番纯玄学特判可…
题目描述 题解 一种好想/好写/跑得比**记者还快的做法: 对所有询问排序,按照R递增的顺序来处理 维护每个点最后一次被覆盖的时间,显然当前右端点为R时的答案为所有时间≥L的点的权值之和 LCT随便覆盖一发,保证一段重链上的点的颜色相同(这样可以直接修改),用树状数组维护权值和 由于要保证颜色相同,所以不能随便moveroot 覆盖时先把x和y的lca和原树上的父亲断掉,把x-->lca这一段覆盖,然后再覆盖y-->lca向y方向的儿子 反正随便写应该就能过( 另一种做法 也就是题解的难想/难…
Description: 小 D 的家门口有一片果树林,果树上果实成熟了,小 D 想要摘下它们. 为了便于描述问题,我们假设小 D 的家在二维平面上的 (0, 0) 点,所有坐标范围的绝对值不超过 N 的整点坐标上都种着一棵果树.((0, 0) 这个点没有果树) 小 D 先站在 (0, 0) 处,正对着 (1, 0) 的方向. 每次摘果实时,小 D 会逆时针选择他能看到的第 K 棵还未摘取果实的果树,然后向着这个方向走去,在行走的过程中摘下沿路的所有的果树上的果树果实,直到走到果树林的边缘. 接…
题目 题目大意 给你一个由整点组成的矩形,坐标绝对值范围小于等于\(n\),你在\((0,0)\),一开始面向\((1,0)\),每次转到后面第\(k\)个你能看到的点,然后将这条线上的点全部标记删除. 问最后一个被标记删除的点的坐标. 正解 先吐槽一句,原来删除的点是一条线上的,而不是一个点-- 害得我以为是一道神题--更可恨的是,我看不出我的暴力有什么错! 既然一次删除的点是在一条线上的,那不妨将整条线上的东西看成一个点. 那就变成了一个约瑟夫问题(也就是猴子选大王). 共有\(8\sum_…
题目 题目大意 给你一棵树,对于每一条边,求删去这条边之后,再用一条边(自己定)连接两个连通块,形成的树的直径最小是多少. 正解 首先,将这棵树的直径给找出来.显然,如果删去的边不在直径上,那么答案就是直径. 接下来考虑删去的边在直径上的情况. 自己连的边应该要是两棵树的直径的中点(中点就是直径上到端点最大距离最小的点). 答案就是两棵树的直径的一半(当然这是粗略的说法)加上边权,和两棵树内部的直径长度的最大值. 设直径端点为\(S\)和\(T\),现在想象直径是横过来的一条线,有一堆树挂在上面…
题目 题目大意 维护一个无向图的割边条数,支持加边和删边. 正解 (PS:这是我很久之前在OJ上打出来的题解,现在直接copy过来) 题解只有一句话,估计没多少人可以看得懂.感觉出题人偷懒不想写题解-- 刚了一个晚上终于理解了题解的做法-- 由于本人还没有AC(时间比较匆忙),所以只是在这里梳理一下思路,顺便造福一下人类. 首先都知道线段树分治是个什么意思吧? 线段树分治是一种有效地利用撤销操作替代删除操作的套路.在这题中,所有的加边删边操作变成了加边和撤销操作.可以把操作看成一个栈,加边的时候…
题目 题目大意 有个二叉树,满足每个点跟它的所有祖先互质. 给出二叉树的中序遍历的点权,还原一种可能的方案. 思考历程 首先想到的当然是找到一个跟全部互质的点作为根,然后左右两边递归下去处理-- 然而考虑到和全部互质的点可能有很多个,这样的做法可能会退化到很多-- 先预处理了个\(L_i\)和\(R_i\)表示\(i\)左边第一个和\(i\)不互质的位置和右边第一个和\(i\)不互质的点. 这个东西怎么预处理就不用说吧-- (我估计正解肯定也要处理这东西) 然后就是乱搞-- 想不出正解,于是打了…
题目 题目大意 给你一堆区间,将这些区间分成特定的几个集合,使得每个集合中的所有区间的并不为空. 求最大的每组区间的交的长度之和. 思考历程 一开始就认为这绝对是\(DP\)-- 试着找一些性质,结果找不出来-- 没办法,只能打个简单的状压\(DP\)-- 正解 首先有个很不显然的结论: 对于两个不重合的区间\(a\)和\(b\),如果它们互相包含(即\(l_a\leq l_b<r_b\leq r_a\)),那么一定满足: \(a\)和\(b\)同在一个组内. \(b\)在某个组内,而\(a\)…