【BZOJ 1602】 牧场行走
【题目链接】
https://www.lydsy.com/JudgeOnline/problem.php?id=1602
【算法】
倍增求LCA
【代码】
#include<bits/stdc++.h>
using namespace std;
#define MAXN 1010
#define MAXLOG 20 int i,n,q,u,v,w;
int sum[MAXN],anc[MAXN][MAXLOG],dep[MAXN];
vector< pair<int,int> > e[MAXN]; inline int lca(int u,int v)
{
int i,t;
if (dep[u] > dep[v]) swap(u,v);
t = dep[v] - dep[u];
for (i = ; i < MAXLOG; i++)
{
if (t & ( << i))
v = anc[v][i];
}
if (u == v) return u;
for (i = MAXLOG - ; i >= ; i--)
{
if (anc[u][i] != anc[v][i])
{
u = anc[u][i];
v = anc[v][i];
}
}
return anc[u][];
}
inline void dfs(int u)
{
int i,v,w;
for (i = ; i < MAXLOG; i++) anc[u][i] = anc[anc[u][i-]][i-];
for (i = ; i < e[u].size(); i++)
{
v = e[u][i].first;
w = e[u][i].second;
if (anc[u][] != v)
{
dep[v] = dep[u] + ;
sum[v] = sum[u] + w;
anc[v][] = u;
dfs(v);
}
}
}
int main()
{ scanf("%d%d",&n,&q);
for (i = ; i < n; i++)
{
scanf("%d%d%d",&u,&v,&w);
e[u].push_back(make_pair(v,w));
e[v].push_back(make_pair(u,w));
}
dfs();
while (q--)
{
scanf("%d%d",&u,&v);
printf("%d\n",sum[u]+sum[v]-*sum[lca(u,v)]);
} return ; }
【BZOJ 1602】 牧场行走的更多相关文章
- BZOJ 1602 牧场行走
直接写一波Lca就好了 #include<cstdio> #include<cmath> #include<algorithm> using namespace s ...
- bzoj 1602 [Usaco2008 Oct]牧场行走(LCA模板)
1602: [Usaco2008 Oct]牧场行走 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 379 Solved: 216[Submit][Sta ...
- BZOJ 1602: [Usaco2008 Oct]牧场行走( 最短路 )
一棵树..或许用LCA比较好吧...但是我懒...写了个dijkstra也过了.. ---------------------------------------------------------- ...
- 1602: [Usaco2008 Oct]牧场行走
1602: [Usaco2008 Oct]牧场行走 Time Limit: 5 Sec Memory Limit: 64 MB Submit: 1211 Solved: 616 [Submit][ ...
- BZOJ1602: [Usaco2008 Oct]牧场行走
1602: [Usaco2008 Oct]牧场行走 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 1084 Solved: 556[Submit][St ...
- 【bzoj1602】[Usaco2008 Oct]牧场行走
1602: [Usaco2008 Oct]牧场行走 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 1793 Solved: 935[Submit][St ...
- 树讲解——牧场行走( lca )
大视野 1602: [Usaco2008 Oct]牧场行走 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 1947 Solved: 1021[Sub ...
- 【BZOJ】1602: [Usaco2008 Oct]牧场行走(lca)
http://www.lydsy.com/JudgeOnline/problem.php?id=1602 一开始以为直接暴力最短路,但是n<=1000, q<=1000可能会tle. 显然 ...
- BZOJ——1602: [Usaco2008 Oct]牧场行走 || 洛谷—— P2912 [USACO08OCT]牧场散步Pasture Walking
http://www.lydsy.com/JudgeOnline/problem.php?id=1602 || https://www.luogu.org/problem/show?pid=2912 ...
- BZOJ 1602: [Usaco2008 Oct]牧场行走 倍增裸题
Description N头牛(2<=n<=1000)别人被标记为1到n,在同样被标记1到n的n块土地上吃草,第i头牛在第i块牧场吃草. 这n块土地被n-1条边连接. 奶牛可以在边上行走, ...
随机推荐
- ajax不跳转页面的快速删除操作,可添加美观样式
以前我们讲的删除是利用嵌入php代码,跳转到另一个页面,从而降低了删除速度,但我们今天讲的利用ajax不仅可以达到不跳页面快速删除,并且能添加特效来美化页面. 上代码,我们先来做主页面 <!DO ...
- 【MySQL】二进制分发安装
操作系统:Red Hat Enterprise Linux Server release 6.5 Mysql安装包:mysql-5.6.34-linux-glibc2.5-x86_64.tar.gz ...
- JS——绑定自定义属性
1.绑定自定义属性: (1)元素节点.属性或元素节点[属性]绑定的属性不会出现在标签中,setAttribute可以出现在标签中. (2)setAttribute获取不到元素节点.属性形式绑定的属性值 ...
- 8、scala面向对象编程之对象
1. Object 2.伴生对象 3.让object继承抽象类 4.apply方法 5.main方法 6.用object实现枚举功能 1. Object Object,相当于class的单个实例, ...
- url中含有中文路径时访问出现404问题
/** * URL中文字符编码转换 * @param url 含中文字符的URL * @return */ public static String getChineseURICode(String ...
- Codeforces_738B
B. Spotlights time limit per test 1 second memory limit per test 256 megabytes input standard input ...
- ionic 创建某个文件下的page
ionic g page 文件名 --pagesDir src/pages/about
- python开发 面试题
一.简述列表与元组的区别 答: 元组tuple与列表List相同点 元组tuple与列表List都是序列类型的容器对象,可以存放任何类型的数据.支持切片.迭代等操作. 元组tuple与列表List区别 ...
- THUSC2019 退役记
Day -inf 这一个半月潜心搞文化课,把文化课的坑填上了不少,我文化课的底子真是薄啊 一年前没想过我还挺有希望进队的,最后还差点冲上 一年后说不定会发现我搞文化课也能搞得不错呢? 一切都是未知 t ...
- SFTP文件上传下载
http://www.cnblogs.com/longyg/archive/2012/06/25/2556576.html (转载)