#6046. 「雅礼集训 2017 Day8」爷

题目描述

如果你对山口丁和 G&P 没有兴趣,可以无视题目背景,因为你估计看不懂 ……

在第 63 回战车道全国高中生大赛中,军神西住美穗带领大洗女子学院的大家打败了其他所有高中,取得了胜利,当然也就不用废校了。
然而一群战车道的领导表示他们是口胡的,废校还是要废的。

军神的母亲西住志穗怒斥废校男,为了不造个大新闻,废校男承诺如果大洗学院可以打败大学队,就不用废校。
(有种 OI 选手 PK ACM 选手的感觉呀)
然而实力差距太大了,大洗女子学院最强的车是虎式 P 型,而大学队清一色的 M26 潘兴,M24 霞飞(突然发现现在霞飞被砍的好惨),还有能跑到 20 的 T95 和卡尔臼炮,感觉根本没法打呀。
这时候一个光头的胖子谢尔盖 • 布尔卡托夫斯基和一个身患癌症急需钱来治病的王姓 CEO 来帮助她们了。
他们把一堆真实性堪忧的坦克图纸给了大洗学院的妹子们,并说这些图纸是真的,而且还原了历史。
大洗学院汽车部的大家看到了这些图纸后非常高兴,开始膜改她们的战车。
虎式 P 型 -> 蟋蟀 17
四号 D 型 -> 四号坦克武器运载车
38(t) 型 -> 莱茵金属公司武器运载车
B1-bis -> 105leFH18B2
即使这样,只有 8 辆战车的大洗女子学院仍然无法打败有 30 辆战车的大学队。

这时候按照剧本其他高中的小伙伴要来帮忙了,然而她们最近正在学习 OI,碰到了一道很神奇的数据结构题,不会做所以来不了。 你作为一个三次元的国家队选手,当然能秒杀二次元的 OI 题啦。 请帮帮她们吧!

给你一个 n nn 个点的有根树,1 11 为根,带边权,有 m mm 次操作。

  1. 求 x xx 的子树中第 k kk 小的深度的值,如果子树中没有 k kk 个点则输出 −1 -1−1;
  2. 江 x xx 与 x xx 父亲的边权加上 k kk。

保证每次操作 2 的 k kk 以及原树的边权小于等于一个数 len \text{len}len。

如果操作 2 中 x xx 为 1 11,那么视为将 x xx 的基础深度加上了 k kk。

输入格式

第一行三个数 n nn、m mm、len \text{len}len。
之后 n−1 n - 1n−1 行每行两个数表示 2∼n 2 \sim n2∼n 每个点的父亲编号,以及他们到父亲的边权。
之后 m mm 行每行三个数 opt \text{opt}opt、x xx、k kk,opt \text{opt}opt 表示操作种类,x xx、k kk 意义如题所述。

输出格式

对于每个操作 1,输出一个数表示答案。

样例

样例输入

3 5 3
1 3
2 3
1 1 3
2 3 3
1 1 3
2 1 2
1 1 3

样例输出

6
9
11

数据范围与提示

对于 10% 10\%10% 的数据,n,m≤1000 n, m \leq 1000n,m≤1000;
对于 30% 30\%30% 的数据,n,m≤30000 n, m \leq 30000n,m≤30000;
对于 100% 100\%100% 的数据,n,m≤100000,len≤10 n, m \leq 100000, \text{len} \leq 10n,m≤100000,len≤10。

本水题采用捆绑测试,你只有通过该部分分的所有数据才可以得到该部分分的分数。

如果你对山口丁和 G&P 没有兴趣,可以无视结局。
如果你做出来了这个题
妹子们看了你的 STD 之后都 A 了这个题,然后去帮助军神。
她们找了 30 个 183 射了对面一脸。
如果你没做出来这个题
妹子们虽然很想帮助军神,但是也爱莫能助,毕竟学战车道不能保送。
没有办法,只能 8 打 30 了。
莱茵蹲在草里,大学队没有人发现它,成功击杀五辆敌方坦克后因为车体无法承受火炮后坐力而解体。
三突也蹲在草里,大学队没有人发现它,它也没有发现任何人,最后蹲不住了去突击,击毁一辆潘兴后被击毁。
四运文艺倒车,大学队看到之后目瞪口呆,成功击杀八辆敌方坦克后因为车体无法承受火炮后坐力而解体。
虎 P 炮一发带走了 95,然后因为转场的时候发动机故障而烧毁。
最后法五金刺刀了 15 个,成功翻盘。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define maxn 100010
using namespace std;
int head[maxn],sz[maxn],dep[maxn],dfn[maxn],l[maxn],r[maxn],a[maxn],fa[maxn],b[maxn],dfv[maxn];
int n,m,num,len,id;
struct node{int to,pre,v;}e[maxn*2];
void Insert(int from,int to,int v){e[++num].to=to;e[num].v=v;e[num].pre=head[from];head[from]=num;
}
void dfs(int x){dfn[x]=++id;dfv[id]=x;l[x]=id;for(int i=head[x];i;i=e[i].pre){int to=e[i].to;dep[to]=dep[x]+e[i].v;dfs(to);}r[x]=id;
}
int main(){scanf("%d%d%d",&n,&m,&len);int x,y;for(int i=2;i<=n;i++){scanf("%d%d",&fa[i],&x);Insert(fa[i],i,x);}dfs(1);for(int i=1;i<=n;i++)a[i]=dep[dfv[i]];int op,k;while(m--){scanf("%d%d%d",&op,&x,&k);if(op==1){if(r[x]-l[x]+1<k){puts("-1");continue;}else {for(int j=l[x];j<=r[x];j++)b[j]=a[j];sort(b+l[x],b+r[x]+1);printf("%d\n",b[k+l[x]-1]);}}else {for(int i=l[x];i<=r[x];i++)a[i]+=k;}}return 0;
}

50分 暴力

转载于:https://www.cnblogs.com/thmyl/p/8969762.html

loj #6046. 「雅礼集训 2017 Day8」爷相关推荐

  1. LOJ#6044. 「雅礼集训 2017 Day8」共(Prufer序列)

    题面 传送门 题解 答案就是\(S(n-k,k)\times {n-1\choose k-1}\) 其中\(S(n,m)\)表示左边\(n\)个点,右边\(m\)个点的完全二分图的生成树个数,它的值为 ...

  2. [LOJ 6042]「雅礼集训 2017 Day7」跳蚤王国的宰相(树的重心+贪心)

    [LOJ 6042]「雅礼集训 2017 Day7」跳蚤王国的宰相 description solution 一个到所有节点距离和最小的节点 ⇔\Leftrightarrow⇔ 树的重心(满足最重的儿 ...

  3. Loj 6036 「雅礼集训 2017 Day4」编码 - 2-sat

    题目传送门 唯一的传送门 题目大意 给定$n$个串,每个串只包含 '0','1','?' ,其中 '?' 至多在每个串中出现1次,它可以被替换为 '0' 或 '1' .问是否可能任意两个不同的串不满足 ...

  4. LOJ#6048. 「雅礼集训 2017 Day10」数列(线段树)

    题面 传送门 题解 我的做法似乎非常复杂啊-- 首先最长上升子序列长度就等于把它反过来再接到前面求一遍,比方说把\(2134\)变成\(43122134\),实际上变化之后的求一个最长上升子序列和方案 ...

  5. LOJ #6052. 「雅礼集训 2017 Day11」DIV

    完了我是数学姿势越来越弱了,感觉这种CXRdalao秒掉的题我都要做好久 一些前置推导 首先我们很容易得出\((a+bi)(c+di)=k \Leftrightarrow ac-bd=k,ad+bc= ...

  6. LOJ #6051. 「雅礼集训 2017 Day11」PATH

    完了感觉最近留了好多坑的说,这题也是模模糊糊地会一点 首先我们发现题目要求的是单调不上升的序列个数,那么一个套路就是用值减去下标 然后考虑连续位置的限制,这个我们做一个置换然后尽量向后取 这样拿值和位 ...

  7. 【思维题 细节】loj#6042. 「雅礼集训 2017 Day7」跳蚤王国的宰相

    挂于±1的细节-- 题目描述 跳蚤王国爆发了一场动乱,国王在镇压动乱的同时,需要在跳蚤国地方钦定一个人来做宰相. 由于当时形势的复杂性,很多跳蚤都并不想去做一个傀儡宰相,带着宰相的帽子,最后还冒着被打 ...

  8. loj 6038「雅礼集训 2017 Day5」远行

    http://www.elijahqi.win/archives/3236 题目描述 Miranda 生活的城市有 N NN 个小镇,一开始小镇间没有任何道路连接.随着经济发现,小镇之间陆续建起了一些 ...

  9. 【刷题】LOJ 6038 「雅礼集训 2017 Day5」远行

    题目描述 Miranda 生活的城市有 \(N\) 个小镇,一开始小镇间没有任何道路连接.随着经济发现,小镇之间陆续建起了一些双向的道路但是由于经济不太发达,在建设过程中,会保证对于任意两个小镇,最多 ...

最新文章

  1. 0213互联网新闻 | IBM宣布推出新的混合云产品;Instagram正在内测网页版聊天服务...
  2. 回归理性 务实推进 迎接AI新时代 2018中国人工智能大会完美收官
  3. oracle:delete和truncate
  4. java调用wvsc.exe_c语言 函数的调用方法
  5. python网络编程系列
  6. 谁该为马化腾表态这个乌龙尴尬?
  7. React Native Modal组件 Android覆盖状态栏
  8. CSS3实践之路(四):文本特效
  9. 软件项目管理案例教程韩万江课后习题答案第四版
  10. 通过使用中国移动随e行客户端软件在电脑上发短信
  11. 初探华尔街期权量化交易的奥秘
  12. Qua Vadis Eclipse? 第二部分
  13. Android封装拍照sdk,Android 短视频拍摄、拍照滤镜 第三方库SDK
  14. Mac使用 automator 自动批量处理网站下载
  15. Swing之绘图消除锯齿
  16. 高数习题9.69.7
  17. Java解析Xml的三种方式总结
  18. 2018年Java大企业面试问题
  19. 使用 UltraISO 将系统写入U盘
  20. 获取访问照片获取ip地址_如何始终获取想要的照片

热门文章

  1. Flutter弹起键盘页面布局超限问题以及布局上移问题
  2. 轨迹动画(屏幕线条环绕)
  3. Centos8修改源并更新
  4. 企业上软件,选择ERP还是ERC
  5. 一步带你了解C语言中++、--的使用方法!
  6. NIKE的网络营销案例给我们的启发
  7. 苹果safari浏览器 button点击不会触发focus事件 如何解决?
  8. egg 调用html文件,egg怎么引入vue
  9. 前端整理 —— 公司项目开发
  10. @EnableConfigurationProperties 注解