1912: [Apio2010]patrol 巡逻 Time Limit: 4 Sec  Memory Limit: 64 MBSubmit: 1034  Solved: 562[Submit][Status][Discuss] Description Input 第一行包含两个整数 n, K(1 ≤ K ≤ 2).接下来 n – 1行,每行两个整数 a, b, 表示村庄a与b之间有一条道路(1 ≤ a, b ≤ n). Output 输出一个整数,表示新建了K 条道路后能达到的最小巡逻距离.…
#include <iostream> #include <cstring> using namespace std; //maxv:源点能到的最远点,maxdis:最远点对应的距离, const int maxn = 1e4 + 5; struct Edge { int to, next, w; }edges[2 * maxn]; int head[maxn], maxdis,maxv, tot; void add(int u, int v, int w) { edges[tot…
Link:https://www.lydsy.com/JudgeOnline/problem.php?id=1912 Algorithm: K=0:res=(n-1)*2   每条边恰好走2遍 K=1:res=res-树上最长链+1 由于每形成环,环上的边对答案的贡献都会-1,因此只要将树上最长链连成环即可 K=2:res=res-树上当前最长链+1 将原树上直径的边的边权赋为-1,表示如果原直径边同时出现在第2个环时对答案贡献增加1(变为2) 证明:第二次求最长链相当于对第一次的“反悔”操作,…
题意:给定一棵N个点树,询问这个树里面每个点到树上其他点的最大距离. n<=10000 思路:设f[u,1],f[u,2]为以U为根向下的最长与次长,g[u,1],g[u,2]为从哪个儿子转移来 第一次dfs用V更新U,第二次dfs用U更新V,因为有V向U往上走的情况,这样做就可以处理了 可以发现这些数值中取最大值就是树的直径了 ..,..]of longint; head,vet,next,len:..]of longint; n,x,y,i,tot:longint; procedure ad…
题目链接 如果k==1, 显然就是直径. k==2的时候, 把直径的边权变为-1, 然后在求一次直径. 变为-1是因为如果在走一次这条边, 答案会增加1. 学到了新的求直径的方法... #include <bits/stdc++.h> using namespace std; #define pb(x) push_back(x) #define ll long long #define mk(x, y) make_pair(x, y) #define lson l, m, rt<<…
题目: 题解: bzoj 3302 == 2447 == 2103 三倍经验 首先我们考虑枚举两个中心的位置,然后统计答案. 我们发现,一定有一部分点离第一个中心更近,另一部分点离第二个中心更近 如果将两部分点分别染成两种颜色,容易发现一定有且只有一条边两端的颜色不相同 所以我们考虑枚举这条边,然后将整个树分成两个部分,然后分别求出分开的两颗树的中心,然后把两部分的代价求和来更新答案. 容易发现这样是\(n^2\)的 然后我们回头看题目,发现有奇怪的条件:深度 <= 100 这启发了我们从深度的…
做不来--参考https://www.cnblogs.com/ezyzy/p/6784872.html #include<iostream> #include<cstdio> using namespace std; const int N=100005; int T,o,n,h[N],cnt,f[N],g[N],q[N],q1[N],l[N],l1[N]; struct qwe { int ne,to; }e[N<<1]; int read() { int r=0,f…
BZOJ_3124_[Sdoi2013]直径_树形DP Description 小Q最近学习了一些图论知识.根据课本,有如下定义.树:无回路且连通的无向图,每条边都有正整数的权值来表示其长度.如果一棵树有N个节点,可以证明其有且仅有N-1 条边. 路径:一棵树上,任意两个节点之间最多有一条简单路径.我们用 dis(a,b) 表示点a和点b的路径上各边长度之和.称dis(a,b)为a.b两个节点间的距离.   直径:一棵树上,最长的路径为树的直径.树的直径可能不是唯一的. 现在小Q想知道,对于给定…
问题描述 很久以前,T王国空前繁荣.为了更好地管理国家,王国修建了大量的快速路,用于连接首都和王国内的各大城市. 为节省经费,T国的大臣们经过思考,制定了一套优秀的修建方案,使得任何一个大城市都能从首都直接或者通过其他大城市间接到达.同时,如果不重复经过大城市,从首都到达每个大城市的方案都是唯一的. J是T国重要大臣,他巡查于各大城市之间,体察民情.所以,从一个城市马不停蹄地到另一个城市成了J最常做的事情.他有一个钱袋,用于存放往来城市间的路费. 聪明的J发现,如果不在某个城市停下来修整,在连续…
Time limit 2000 ms Memory limit 262144 kB Source Codeforces Round #328 (Div. 2) Ari the monster is not an ordinary monster. She is the hidden identity of Super M, the Byteforces’ superhero. Byteforces is a country that consists of n cities, connected…