树
Spy97
这个作者很懒,什么都没留下…
展开
-
CodeForces 915F Imbalance Value of a Tree
F. Imbalance Value of a TreeYou are given a tree T consisting of n vertices. A number is written on each vertex; the number written on vertex i is ai. Let's denote the function I(x, y) as the differen...原创 2018-03-20 21:49:27 · 344 阅读 · 0 评论 -
Codeforces 833D Red-Black Cobweb 边分治
题意一颗树,有边权,和颜色(红或黑)求,所有的路径中,满足两种颜色的个数差不超过少的颜色的两倍的路径的权值的乘积路径的权值为经过的边的权值的乘积题解边分治牛逼!!!出现了两个错误,一个是,快速幂时,指数不能先取模,不知道为啥脑子抽筋了…第二个是,算法有一部分考虑的还不完备,测数据时才发现了漏洞回到这道题来求不合法的路径个数我更喜欢边分治,因为考虑的简单,只会分成两个子问题,不需...原创 2019-10-04 08:08:31 · 221 阅读 · 0 评论 -
2019 ICPC 上海网络赛 Lightning Routing I
题目链接题意一颗树,动态修改边权,询问某个点到树上最远点的距离题解最远点一定是树的直径的端点之一所以问题就是动态维护树的直径考虑用线段树维护dfs序上一段区间说代表的树的直径合并时,直径有四种可能,分别枚举用树状数组维护结点到根的距离修改时,在dfs序上用树状数组修改查询距离(u,v)(u,v)(u,v)时,dis(u)+dis(v)−2∗dis(LCA(u,v))dis(u)...原创 2019-10-03 08:03:23 · 250 阅读 · 0 评论 -
2019 ACM湖南省赛 边分治
边分治模板题代码#include<bits/stdc++.h>#define N 80010#define INF 0x3f3f3f3f#define eps 1e-5#define pi 3.141592653589793#define mod 998244353#define P 1000000007#define LL long long#define pb...原创 2019-10-02 14:16:24 · 204 阅读 · 0 评论 -
HDU 6241 2017CCPC 哈尔滨站 Color a Tree
题意给一棵树,初始都是白色,让你染黑色,每个点有两个限制 Ai,BiA_i,B_iAi,Bi ,即点 iii 的子树黑点的个数不少于 AiA_iAi,除了点 iii 的子树,黑点的个数不少于 BiB_iBi求最少染的黑点的个数题解二分答案则每个点子树的黑点的个数有一个区间范围 [Ai,mid−Bi][A_i,mid-B_i][Ai,mid−Bi]在树上 dpdpdp, 进...原创 2019-09-03 15:40:59 · 282 阅读 · 0 评论 -
2019杭电多校第九场 HDU 6686 Rikka with Travels
题意给出一颗树,找两条没有共点的路径,记两条路径经过的点的个数为 a、ba、ba、b,求 pair(a,b)pair(a,b)pair(a,b) 的种类数题解考虑枚举结点,作为经过他路径的LCA时,还能找到合法的最长路径首先,我们将直径的端点作为树根,变成有根树考虑树根,经过他的最长路径就是直径 aaa,所以,选了直径后,再选一条最长的路径(去掉直径上的点后的图的新直径)bbb,就得到...原创 2019-08-20 15:06:11 · 329 阅读 · 0 评论 -
SPOJ Query on a tree VI 树链剖分 树状数组
链接https://vjudge.net/problem/SPOJ-QTREE6题解写得我脑壳疼,参考了不少题解,加深了对树剖的理解用W[u]W[u]W[u]维护当前局势下,如果uuu为白色,uuu为根的子树中和uuu联通的个数用B[u]B[u]B[u]维护当前局势下,如果uuu为黑色,uuu为根的子树中和uuu联通的个数那么,对于询问操作,向上找到最远的与uuu同色的节点xxx,那么...原创 2019-06-09 11:42:02 · 164 阅读 · 0 评论 -
NOIP 2015 运输计划 树上差分 二分答案
#include<bits/stdc++.h>#define N 300010#define INF 0x3f3f3f3f#define eps 1e-10#define pi 3.141592653589793#define P 1000000007 #define LL long long#define pb push_back#define fi first#d...原创 2019-06-06 00:40:34 · 117 阅读 · 0 评论 -
ZOJ 4097 Rescue the Princess
题目链接: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5986题意nnn个点,mmm条边的图,询问z,x,yz,x,yz,x,y,是否能找到xxx到zzz,yyy到zzz没有重复经过路的方案。题解边双联通,进行缩点,然后用LCA判断。代码#include<bits/stdc++.h>#define...原创 2019-04-17 00:08:44 · 333 阅读 · 0 评论 -
华中科技大学程序设计邀请赛网络赛 F War
题意给出一个n个点的树,询问编号在一个区间内的点到给定点的最近距离。题解分块暴力求解,整块中用SPFA预处理,零散的用LCA求解。首先根据内存限制,计算出打开能开200∗N200*N200∗N的数组,所以,每500500500个点为一块,在块内跑一边SPFA,求出块内的点到其他点的最短路。询问区间[l,r][l,r][l,r],分为多个整块的和多个零散的在块以外的,整块的就用之前SP...原创 2019-04-14 00:10:41 · 206 阅读 · 0 评论 -
Kruskal重构树
建树方法在Kruskal求最小/最大生成树的基础上,假设要加入的u、v两点,边权为w,设u、v两点的father为fu、fv,新建一个点(从n+1开始标号)p,father[fu]=father[fv]=p,将点p的点权设为w。 使用方法:最小生成树的任意两点的最大值:将边从小到大排序后,正常Kruskal重构树建边,加上LCA即可,LCAdence点权就是最大值最大生成树...原创 2018-09-13 16:08:44 · 185 阅读 · 0 评论 -
HDU 6393
题意:一个n个点,n条边的图,2中操作,1是将某条边的权值更改,2是询问两点的最短距离。题解: 由于n个点,n条边,所以是树加一个环,将环上的边随意取出一条,就是1颗树,以取出的边的一个端点为根,建立有根树。虚线就是取出的边。红色为环上的边。对于更改边的权值的操作,用dfs序+区间修改点查询的树状树组维护。对于询问最短路的操作,用LCA分类解决。假设询问的两点是x、...原创 2018-08-15 00:07:06 · 336 阅读 · 0 评论 -
HDU 6305
题解:先在【1,n】中找到最大的数的位置mid,建立左儿子【1,mid-1】,右儿子【mid+1,n】,然后在左右儿子中递归重复上述操作。如数列:1 2 3 1 2 5 2 1,建图如下: 可知,第6个数(数字5)应该是8个数中最大的,概率为,第3个数(数字3)应该是前5个数中最大的,概率为,第...原创 2018-07-24 21:01:39 · 415 阅读 · 0 评论 -
Tree Destruction codeforces 911F
题目大意:给出一棵树,进行n-1次操作。每次操作包括找两个点,距离加到ans中,再删除其中一个点,n-1次操作后将只剩1个点,求最大ans。题解:先求出树的直径,两个端点为p1、p2,操作分2种。第一种,删除非直径上的点(a、b、c),如图 操作时,选择的点对为{a,max(p1,p2)},max(p1,p2)表示a到p1,p2距离最大的点,删...原创 2018-04-06 18:15:10 · 253 阅读 · 0 评论 -
CF 1019E Raining season 边分治
#include<bits/stdc++.h>#define N 400010#define INF 0x3f3f3f3f#define eps 1e-5#define pi 3.141592653589793#define mod 998244353#define P 1000000007#define LL long long#define pb push_back...原创 2019-10-06 23:36:27 · 227 阅读 · 0 评论