摘要: 用途 大规模地处理树上路径 做法 先考虑对x为根的子树做dfs来处理x子树到x的路径,然后统计答案,然后再递归地做x的儿子... 然而当树退化成链时,最差复杂度是$O(n^2)$的 类比一维中二分的做法,其实是使左右区间尽量平均,那我们也让我们要处理的点的子树大小尽量平均 具体来说,我们每次想要做x 阅读全文
posted @ 2018-09-14 21:47 Ressed 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 要求出两点间距离==0(mod3) 的数量,然后除以(n*n) 设f[i][j]为i的子树到i的距离==j(mod3)的数量,然后做树形dp即可 因为要最简,所以要求一下gcd,然后除下去 阅读全文
posted @ 2018-09-14 21:20 Ressed 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 我们是想跑最短路的 我们有两种建图方式: 1.对于每个doge i,连向B[j]==B[i]+P[i]*k ,k=..,-2,-1,0,1,2,... ,边权=|k|,这样连的复杂度是$O(N\sum\limits_{i=1}^{m}\frac{1}{P[i]})$ 2.对于每个楼i,建max(P[ 阅读全文
posted @ 2018-09-14 21:11 Ressed 阅读(261) 评论(0) 推荐(0) 编辑
摘要: N个点,每个点发出一条边,那么这个图的形状一定是一个基环树森林(如果有重边就会出现森林) 那我做f[0][x]和f[1][x]分别表示对于x子树,x这个点选还是不选所带来的最大价值 然后就变成了这好几个环上不能选相邻的点,最大的价值和 我们把这个环从N到1处断开,然后钦定一下1选还是不选,统计一下答 阅读全文
posted @ 2018-09-14 20:44 Ressed 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 给牛和草都按价格排序,然后贪心地把草给牛(就是尽量给满足价格的、要求的美味度最高但不超过这个草的美味度的牛) 这个可以用一个平衡树来维护,偷懒直接用multiset了 阅读全文
posted @ 2018-09-14 20:38 Ressed 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 点分治。WA了一万年。 重点就是统计答案的方法 做法一(洛谷AC bzojWA 自测WA): 做点x时记到x距离为k的边数最小值为dis[k],然后对每一对有值的dis[i]和dis[K-i],给ans[A[i]+A[K-i]]++,然后因为统计到了一部分不合法答案,就做x的儿子,给ans变成--, 阅读全文
posted @ 2018-09-14 20:33 Ressed 阅读(249) 评论(0) 推荐(0) 编辑