暂无链接

洞穴辐射

[问题描述]

在火星表面着陆后,科学家发现了一个由隧道相连的洞穴系统。于是,他们开始使用遥控机器人帮助研究,它在每两个洞穴之间可以找到一条航线。洞穴中因微弱爆炸产生辐射,科学家们在每个洞穴内安装传感器来监测辐射水平。对于机器人的每次移动,他们想知道机器人在移动过程中要面对的最大辐射水平。因此,他们要求你写一个程序来解决他们的问题。

[输入格式]

笫一行为一个整数n(l≤n≤100000)n(l \le n \le 100000)n(l≤n≤100000)表示洞穴的数量。

接下来n−1n-1n−1行描述隧道,每行包含两个整数Ai,Bi(l≤Ai,Bi≤n)A_i,B_i(l \le A_i,B_i \le n)Ai​,Bi​(l≤Ai​,Bi​≤n),表示相应的洞穴被隧道相连。

下一行有一个整数q(q≤100000)q(q \le 100000)q(q≤100000)表示指令数。

接下来qqq行描述指令,均以GGG或III为开头:

(1)GuvG\ u\ vG u v:表示这是一个査询,询问当机器人从洞穴uuu移动到洞穴vvv所受到的最大辐射值为多少;

(2)IuvI\ u\ vI u v:表示洞穴uuu处发生了微弱爆炸,该处的辐射值增加了v(0≤v≤10000)v(0 \le v \le 10000)v(0≤v≤10000),默认初始时辐射值均为0。

[输出格式]

对于每一个査询输出一行,表示最大辐射水平。

[输入样例]

4
1 2
2 3
2 4
6
I 1 1
G 1 1
G 3 4
I 2 3
G 1 1
G 3 4

[输出样例]

1
0
1
3

[时间和空间限制]

时间限制为3秒,空间限制为64MB。

题解

打板

代码
#include<bits/stdc++.h>
#define ls son[v][0]
#define rs son[v][1]
using namespace std;
const int M=1e5+5;
int son[M][2],dad[M],mx[M],val[M],n,q;
bool rev[M];
bool notroot(int v){return son[dad[v]][0]==v||son[dad[v]][1]==v;}
void up(int v){mx[v]=max(val[v],max(mx[ls],mx[rs]));}
void turn(int v){swap(ls,rs);rev[v]^=1;}
void down(int v){if(!rev[v])return;if(ls)turn(ls);if(rs)turn(rs);rev[v]=0;}
void push(int v){if(notroot(v))push(dad[v]);down(v);}
void spin(int v)
{int f=dad[v],ff=dad[f],k=son[f][1]==v,w=son[v][!k];if(notroot(f))son[ff][son[ff][1]==f]=v;son[v][!k]=f;son[f][k]=w;if(w)dad[w]=f;dad[f]=v;dad[v]=ff;up(f);up(v);
}
void splay(int v)
{push(v);int f,ff; while(notroot(v)){f=dad[v];ff=dad[f];if(notroot(f))spin((son[f][0]==v)^(son[ff][0]==f)?v:f);spin(v);}
}
void access(int v){for(int f=0;v;v=dad[f=v])splay(v),rs=f,up(v);}
void beroot(int v){access(v);splay(v);turn(v);}
void split(int x,int y){beroot(x);access(y);splay(y);}
void link(int x,int y){beroot(x);dad[x]=y;}
void in()
{int a,b;scanf("%d",&n);for(int i=1;i<n;++i)scanf("%d%d",&a,&b),link(a,b);
}
void ac()
{char ch[10];int a,b;scanf("%d",&q);for(int i=1;i<=q;++i){scanf("%s%d%d",ch,&a,&b);if(ch[0]=='G')split(a,b),printf("%d\n",mx[b]);else splay(a),val[a]+=b,up(a);}
}
int main()
{in();ac();return 0;
} 

洞穴辐射(radiation)相关推荐

  1. β射线与哪些物质可产生较高的韧致辐射_辐射无所不在,香蕉土豆里都有?我们还能愉快生活吗?...

    作为一枚受过系统科学教育,耳聪目明的当代年轻人,你是不是隔三差五被长辈亲友群里各种"XX有放射性,赶紧远离!"的科学谣言搞得哭笑不得?又或者,稍一不注意,长辈亲友就买回了各种号称黑 ...

  2. 线缆束的辐射与抗干扰

    内容:线缆束的辐射与抗干扰 一.模型描述 1.1模型描述:   图1:线缆与环境-全模型示意图,包括线缆截面形式 1.2计算方法描述: 采用矩量法-MoM+MTL 1.3 线缆规格: 采用两根单线组成 ...

  3. 2011大学英语四级核心高频词汇表免费下载

    2011年大学英语四级核心高频词汇表 abandon vt.丢弃:放弃,抛弃 ability n.能力:能耐,本领 abnormal a.不正常的:变态的 aboard ad.在船(车)上:上船 ab ...

  4. 开关电源雷击浪涌整改_大佬多年经验总结,开关电源EMI整改策略

    以下是作者分享有关开关电源EMI整改的多年经验总结,包括:开关电源设计前 EMI 一般应对策略,开关电源设计后 EMI 的实际整改策略等,总共有 99 条经验,希望能帮助大家. EMC的分类及标准: ...

  5. sp烘焙流程_烘焙工作流程图

    烘焙工作流程图 [相关阅读] 烘焙学基础篇 烘焙是门学问.根据字意的解释,"烘"是用火烘干湿物,例如 烘干;"焙"是用微火烘烤东西,例如焙茶;"烤&q ...

  6. 商务英语转计算机,BEC商务英语

    随着计算机和网络技术的发展,计算机英语词汇在日益增多,这些新词汇通常借助添义法或某一构词法形成,对它们作词汇形成分析并找出规律,可便于计算机使用者更好地理解词义和识记计算机英语词汇. 纵观计算机英语词 ...

  7. Ls-Dyna 软件简介 (1)

    1.1 LS-DYNA 简介 LS-DYNA 是世界上最著名的通用显式动力分析程序,能够模拟真实世界的各种复杂问题,特别适合求解各种二维.三维非线性结构的高速碰撞.爆炸和金属成型等非线性动力冲击问题, ...

  8. emc整改措施及案例_EMC整改方案

    页脚内容 1 篇一: emc 实用整改方案 emc 的分类及标准: emc = emi + ems emi : 電磁干擾 ems : 電磁相容性 ( 免疫力 ) emi 可分为传导 conductio ...

  9. 每日新闻丨中国人工智能专利申请量百度腾讯微软浪潮居前四;物联网设备Wi-Fi 6试用测试成功...

    趋势洞察 中国人工智能专利申请量排行:百度腾讯微软浪潮居前四 近日,国家工业信息安全发展研究中心发布<人工智能中国专利技术分析报告>,百度.腾讯.微软.浪潮位居前四.报告针对人工智能下基础 ...

  10. 感量越大抑制频率约低_开关电源EMI设计与整改策略100条!

    EMC的分类及标准:本文引用地址:http://www.eepw.com.cn/article/201705/358653.htm EMC(Electromagnetic Compatibility) ...

最新文章

  1. 最详细的NLP开源数据集分享--包含342个公开数据集
  2. 数据分层/ODS/DW/DM
  3. Python - MySQL数据库操作
  4. SAP SOAMANAGER报错原因与故障排除方法
  5. HDU - 4394 Digital Square(数位dfs)
  6. hp 导出日志 远程管理卡_惠普服务器远程管理卡安装详解
  7. 每日一题(40)—— 字符串常量
  8. 磁力mysql搜索_多功能搜索 搜索系统安装 小说 电影 磁力
  9. InfoPath 发布表单到SharePoint库报错
  10. Unity 手机的旋转控制
  11. 2018linux市场份额数据,2018年7月Windows 10市场份额上涨,Linux仅占1.35%
  12. excel数字小写转大写公式的教程
  13. 专业网速测试软件哪个好,网速测试软件哪个好?6款热门网速测试软件推荐
  14. JixiPix Premium Pack for Mac(创意照片特效软件)
  15. macbook WIN10系统安装教程
  16. python为什么要安装pip_为什么您应该使用`python -m pip`
  17. 关于XAMPP Apache 启动失败的问题
  18. ubuntu 20.04网卡驱动安装(rtl8812au)
  19. 想入门自学编程,应该怎么开始?
  20. RT-Thread柿饼的控件简介

热门文章

  1. 使用JSPanda扫描客户端原型污染漏洞
  2. HashMap源码分析(保姆式注解):三大方法(构造、Put、Remove) ;附带面试考点及博主免费答疑
  3. unable to apply changes:plugins App links assistant,firebase services won'
  4. Java语言中String累的总结
  5. 【Network】OVS VXLAN/GRE 实践
  6. typescript 爬坑速记
  7. C#3.0 new features: Lambda expression
  8. (转)用Javascript获取页面元素的位置
  9. 如何在C#中读写INI文件
  10. 揭秘ServerBootstrap神秘面纱(服务端ServerBootstrap)