有没有做兼职的网站wordpress 图片 二级域名
web/
2025/10/3 12:33:39/
文章来源:
有没有做兼职的网站,wordpress 图片 二级域名,西安学校网站建设费用,如何免费做网站优化题目链接#xff1a;http://poj.org/problem?id1986 题意#xff1a;就是老问题求val[u]val[v]-2*val[root]就行。还有这题没有给出不联通怎么输出那么题目给出的数据一定 是联通的。 题解#xff1a;就是单纯的lca。 #include iostream
#include cstring
… 题目链接http://poj.org/problem?id1986 题意就是老问题求val[u]val[v]-2*val[root]就行。还有这题没有给出不联通怎么输出那么题目给出的数据一定 是联通的。 题解就是单纯的lca。 #include iostream
#include cstring
#include vector
#include cstdio
using namespace std;
const int M 8e4 10;
vectorpairint , int vc[M];
int p[M][20] , val[M] , deep[M];
void dfs(int pos , int pre , int d) {p[pos][0] pre;deep[pos] d;int len vc[pos].size();for(int i 0 ; i len ; i) {int u vc[pos][i].first;if(u ! pre) {val[u] val[pos] vc[pos][i].second;dfs(u , pos , d 1);}}
}
void init(int n) {for(int i 0 ; i 18 ; i) {for(int j 1 ; j n ; j) {if(p[j][i] -1) {p[j][i 1] -1;}else {p[j][i 1] p[p[j][i]][i];}}}
}
int lca(int a , int b) {if(deep[a] deep[b]) {swap(a , b);}int d deep[a] - deep[b];for(int i 0 ; i 18 ; i) {if(d (1 i)) {a p[a][i];}}if(a b) {return a;}for(int i 17 ; i 0 ; i--) {if(p[a][i] ! p[b][i] p[a][i] ! -1) {a p[a][i];b p[b][i];}}return p[a][0];
}
int main() {int n , m , u , v , w , k;char cp[10];while(scanf(%d%d , n , m) ! EOF) {for(int i 1 ; i n ; i) {val[i] 0;vc[i].clear();}for(int i 1 ; i n ; i) {scanf(%d%d%d%s , u , v , w , cp);vc[u].push_back(make_pair(v , w));vc[v].push_back(make_pair(u , w));}memset(p , -1 , sizeof(p));dfs(1 , -1 , 1);init(n);scanf(%d , k);while(k--) {scanf(%d%d , u , v);printf(%d\n , val[u] val[v] - 2 * val[lca(u , v)]);}}return 0;
}转载于:https://www.cnblogs.com/TnT2333333/p/6737644.html
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/86219.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!