简述题意:

给你一棵树,然后给你q次询问。每次给你u,k。让你打印第u个节点往下传达命令的顺序中(包括u本身),第k个人是几号。

解法思路:

预处理先裸跑dfs,将顺序存下,并且同时记录下当前节点的dfs遍历顺序a[i]以及当前节点的 子节点数量b[i]。

然后给你u,k。只要b[u]+1>=k  就输出  l[a[i]+q-1]   否则输出-1;

代码

#include<stdio.h>
#include<algorithm>
#include<iostream>
#include<string.h>
#include<vector>
#define N 200005
using namespace std;
int a[N],b[N],l[N],w=1,n,q,x,u,k;
vector<int>v[N];
void dfs(int x){a[x]=w;//记录x在dfs顺序中的位置 l[w++]=x;//记录dfs顺序 for(auto i:v[x])dfs(i);b[x]=w-1-a[x];//记录x的子节点个数
}
int main(){cin>>n>>q;for(int i=2;i<=n;i++){cin>>x;v[x].push_back(i);}dfs(1);
//  for(int i=0;i<w;i++)cout<<l[i]<<" ";cout<<endl;
//  for(int i=1;i<=n;i++)cout<<b[i]<<" ";cout<<endl;
//  for(int i=1;i<=n;i++)cout<<a[i]<<" ";cout<<endl;while(q--){cin>>u>>k;if(b[u]+1<k)puts("-1");else cout<<l[a[u]+k-1]<<endl;}
}

CodeforcesRound#498 (Div.3)E题Military Problem相关推荐

  1. Codeforces Round #498 (Div. 3) - 赛后补题

    D. Two Strings Swaps PS:没思考清楚,重复算了一些情况. #include<bits/stdc++.h> #include<bitset> #define ...

  2. Codeforces Round #498 (Div. 3)【完结】

    2022.3.6 题单地址:https://codeforces.com/contest/1006 目录 A. Adjacent Replacements B. Polycarp's Practice ...

  3. Codeforces Round 700 (Div. 2) B题 英雄杀怪兽

    Codeforces Round 700 (Div. 2) B题 链接: https://codeforces.com/contest/1480/problem/B 大致意思: n组数据,每组数据的第 ...

  4. Military Problem CodeForces 1006E (dfs序)

    J - Military Problem CodeForces - 1006E 就是一道dfs序的问题 给定一个树, 然后有q次询问. 每次给出u,k, 求以u为根的子树经过深搜的第k个儿子,如果一个 ...

  5. Ivan the Fool and the Probability Theory-Codeforces Round #594 (Div. 2)-C题(dp+思维)

    Ivan the Fool and the Probability Theory-Codeforces Round #594 (Div. 2)-C题(dp+思维) time limit per tes ...

  6. bestcoder #56 div 2 B Clarke and problem(dp)

    Clarke and problem  Accepts: 169  Submissions: 372  Time Limit: 2000/1000 MS (Java/Others)  Memory L ...

  7. Educational Codeforces Round 133 (Rated for Div. 2) D题

    题目链接:Problem - D - Codeforces 一道非常经典的完全背包求方案数题: 首先先写好我们的状态转移方程,那什么代表体积,什么代表物品数目呢: 其实很清晰k, k + 1 ... ...

  8. Educational Codeforces Round 103 (Rated for Div. 2)前四题

    Educational Codeforces Round 103 (Rated for Div. 2) 第二次被别人hack,悲 A - K-divisible Sum 题意 给定两个整数 n,kn, ...

  9. Educational Codeforces Round 131 (Rated for Div. 2)刷题记录OR题解

    题解 A Grass Field 题面翻译 给出一个 2×22 \times 22×2 的矩阵,矩阵的值都是 000 和 111,定义一次操作:选择一个点,将其所在的行和列的点的值全部修改为 000, ...

  10. codeforces Educational Codeforces Round 49 (Rated for Div. 2) C题

    刚开始拿到这题很懵逼,知道了别人的思路之后开始写,但是还是遇到很多坑,要求求P2/S最大.p=a b.就是求(a2+ b2 +2ab)/ab最大,也就是a/b +b/a最大.那么题意就很明显了. 但是 ...

最新文章

  1. python的try菜鸟_python异常处理try except过程解析
  2. RAR压缩包审计工具unrar-nofree
  3. div css导航栏设计,CSS+DIV设计实例:超酷的竖排导航栏
  4. 微型计算机的alu部件是包含在,微型计算机的ALU部件是什么?
  5. 上海c语言做游戏培训,0基础C语言游戏逆向课程,培训视频+项目实战
  6. [转]Android核心分析之二:方法论探讨之概念空间篇
  7. 使用JMH做Java微基准测试:JMH(Java Micro Benchmark) 简介
  8. python写算法注册机_用python 写 Atlantis Word Processor 注册机
  9. 云杰恒指:9.4恒指期货实盘指导交易复盘
  10. Linux远程访问的方法
  11. linux如何把系统盘转换成gpt,如何更改/转换Ubuntu MBR驱动器到GPT,并从EFI启动Ubuntu?...
  12. 2020湖南省技能竞赛获奖名单_2020年全国职业院校技能大赛教学能力比赛落幕 湖南获一等奖数量排全国第一...
  13. 参考答案-数据库原理测试一
  14. 【Codecs系列】双帧参考特性
  15. 如何启动app和exe程序
  16. PbootCMS教程-PbootCMS建站教程-Pboot模板开发教程
  17. MTC生态最新的落地应用,连环竞技场即将耀世而来
  18. DRG/DIP 分组器接口开放调用
  19. StringBuilder连接字符串
  20. c# 火狐浏览器怎么嵌入窗体中_C#WinForm窗体内Panel容器中嵌入子窗体、程序主窗体设计例子...

热门文章

  1. Android 实现全屏、无标题栏
  2. JS 用window.open()函数详解
  3. axios传参 后台接收为空
  4. 步步为营 .NET三层架构解析 五、DAL与IDAL的设计
  5. Python基础语法,基本数据类型及相关操作
  6. Adopt Open JDK官方文档(八)OpenJDK 项目介绍
  7. 求交集和并集的线性算法
  8. Android SDK Tools Platform-tools Build-tools
  9. 用Intel线程构建块进行安全、可伸缩性的并行编程
  10. 《C#高级编程》笔记系列--点滴记录(持续更新中……)