【CodeForces 697C】Lorenzo Von Matterhorn(LCA)
Least Common Ancestors
节点范围是1~1e18,至多1000次询问。
只要不断让深的节点退一层(>>1)就能到达LCA。
用点来存边权,用map储存节点和父亲连边的权值。
#include<cstdio>
#include<map>
#define ll long long
using namespace std;
map<ll,ll>m;
ll u,v,w;
void add(){
while(u!=v){
if(u<v){
m[v]+=w;
v>>=;
}
else{
m[u]+=w;
u>>=;
}
}
}
ll query(){
ll ans=;
while(u!=v){
if(u<v){
ans+=m[v];
v>>=;
}else{
ans+=m[u];
u>>=;
}
}
return ans;
}
int main(){
int n;
scanf("%d",&n);
for(int i=;i<=n;i++){
int op;
scanf("%d",&op);
if(op==){
scanf("%lld%lld%lld",&u,&v,&w);
add();
}else{
scanf("%lld%lld",&u,&v);
printf("%lld\n",query());
}
}
}
【CodeForces 697C】Lorenzo Von Matterhorn(LCA)的更多相关文章
- CodeForces 696A:Lorenzo Von Matterhorn(map的用法)
http://codeforces.com/contest/697/problem/C C. Lorenzo Von Matterhorn time limit per test 1 second m ...
- CodeForces 696A Lorenzo Von Matterhorn (LCA + map)
方法:求出最近公共祖先,使用map给他们计数,注意深度的求法. 代码如下: #include<iostream> #include<cstdio> #include<ma ...
- 【Codeforces 723D】Lakes in Berland (dfs)
海洋包围的小岛,岛内的有湖,'.'代表水,'*'代表陆地,给出的n*m的地图里至少有k个湖,求填掉面积尽量少的水,使得湖的数量正好为k. dfs找出所有水联通块,判断一下是否是湖(海水区非湖).将湖按 ...
- 【CodeForces 266C】Below the Diagonal(模拟)
题目每次把空列换到最后一列,把非空行换到最下一行. #include<cstdio> #include<algorithm> #define N 1005 using name ...
- 【HDU 2874】Connections between cities(LCA)
dfs找出所有节点所在树及到树根的距离及深度及父亲. i和j在一棵树上,则最短路为dis[i]+dis[j]-dis[LCA(i,j)]*2. #include <cstring> #in ...
- 洛谷P3379 【模板】最近公共祖先(LCA)
P3379 [模板]最近公共祖先(LCA) 152通过 532提交 题目提供者HansBug 标签 难度普及+/提高 提交 讨论 题解 最新讨论 为什么还是超时.... 倍增怎么70!!题解好像有 ...
- 【Unity Shaders】学习笔记——SurfaceShader(十一)光照模型
[Unity Shaders]学习笔记——SurfaceShader(十一)光照模型 转载请注明出处:http://www.cnblogs.com/-867259206/p/5664792.html ...
- 【Unity Shaders】学习笔记——SurfaceShader(十)镜面反射
[Unity Shaders]学习笔记——SurfaceShader(十)镜面反射 如果你想从零开始学习Unity Shader,那么你可以看看本系列的文章入门,你只需要稍微有点编程的概念就可以. 水 ...
- 【Unity Shaders】学习笔记——SurfaceShader(九)Cubemap
[Unity Shaders]学习笔记——SurfaceShader(九)Cubemap 如果你想从零开始学习Unity Shader,那么你可以看看本系列的文章入门,你只需要稍微有点编程的概念就可以 ...
随机推荐
- js原生碰撞检测
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- oracle plsql 捕获异常和抛出异常
在写oracle存储过程的时候很多东西放到存储过程里面比如一些判断等,要比在程序逻辑里面简单很多,但是也会涉及到捕获和抛出一样的问题. 捕获异常 语法: 首先定义异常: <异常情况> E ...
- charCode与keyCode的区别
在标准浏览器下获取键盘按键我们可以使用e.which,但是非标准下没有这个属性,所以大部分情况下用keyCode,但是这是存在兼容性问题的.我们来看下他两的区别: onkeydown: e.keyCo ...
- bzoj2286 消耗战
还是虚树的题目啊... 如果只有一个询问,我们这么考虑,可以设dp[x]为只删除x子树内和x到父亲的边,使得x这棵子树内的能源岛屿都与x的父亲不连通的最小花费. 这样如果x本身是能源岛屿,那么dp[x ...
- Construct Binary Tree from Inorder and Postorder Traversal
Construct Binary Tree from Inorder and Postorder Traversal Given inorder and postorder traversal of ...
- QT QMianWindow类
QMianWindow是一个为用户提供主窗口程序的类,包含一个菜单栏(menu bar).及一个中心部件(central widget),是许多应用程序的基础,如文本编辑器等. QMainWindow ...
- 洛谷 1016 / codevs 1046 旅行家的预算
https://www.luogu.org/problem/show?pid=1016 http://codevs.cn/problem/1046/ 题目描述 Description 一个旅行家想驾驶 ...
- SUBLIME TEXT 2中,光标移入移出括号的快捷键设置
无赖右方向键→和End键都在键盘的另一边,每次输入完一个函数,光标在各种括号中间,有什么更好的方式将光标移出来呢?在Sublime Text 2中,我们可以自己设置快捷键: { "keys& ...
- 小记sql server临时表与表变量的区别
临时表与表变量都可以起到“临时”的作用,那么两者主要的区别是什么呢? 这里不讨论创建方式,以及全局临时表.会话临时表这些,主要记录一下个人对两者的主要区别以及适用情况的看法,有什么不对或补充的地方,欢 ...
- github上传
创建全局的name和email 1.创建ssh(使用命令)$ssh-keygen -t rsa -C xxxxx@gmail.com(注册github时的email)2.在github中添加ssh 登 ...