首页 > Military Problem
头像 林思艺
发表于 2020-11-09 15:15:54
题意 你有一棵有个节点的树,有次询问,每次询问有,指从以为根的子树出发到达的第个点是哪一个?如果不存在(即,子树的大小小于),输出。 分析 很的一道题啊。你先预处理出每个点的序以及每个序对应的点和每棵子树的大小就可以了。询问的时候输出就好了。(数组存的是每个点的序,数组存的是每个序对应的点). 代码 展开全文
头像 子希
发表于 2020-11-11 12:03:37
题目大意:给你一棵树,然后有q个询问(u,k),问以u为根进行深度优先搜索第k个元素是多少?思路:朴素做法:对于q个询问,每个询问dfs一下求第k个元素即可。---超时正解:我们可以先求出以1为根的所有节点的dfs序,然后记录一下第i个dfs序是谁,然后对于q个询问输出第(dfn[u] + k - 展开全文
头像 DeNeRATe
发表于 2020-11-18 11:18:10
分析 题目要求求出当前点子树dfs遍历时第v个到达的点的编号那么我们可以直接走dfn序然后用一个数组记录那么每次只需要特判加输出即可时间复杂度:期望得分:100分 代码 //CF1006E #include <algorithm> #include <iostream> #i 展开全文
头像 lifehappy
发表于 2020-11-06 18:18:18
Military Problem DFS序模板题了,l[rt]标记rt节点第一次进入,r[rt]表示rt节点退出,然后只要判断l[rt] + k - 1 是否小于等于r[rt]即可。 /* Author : lifehappy */ #include <bits/stdc++.h> 展开全文
头像 Kur1su
发表于 2020-11-07 09:48:32
Description 一句话翻译(祈福12月六级考试)给一棵树,m个查询每个查询(u, k) 代表 u 节点dfs序下第k个节点 Solution 令l[i] 表示i节点的起点位置,r[i] 表示i节点的终止位置,a[i] 表示第i个数字是哪个节点。对于每个查询,查找是否在 [l[u], r[u] 展开全文
头像 sunrise__sunrise
发表于 2020-11-09 11:01:39
题目描述 #include <bits/stdc++.h> using namespace std; #define js ios::sync_with_stdio(false);cin.tie(0); cout.tie(0) #define all(__vv__) (__vv__). 展开全文
头像 issue是云哥的小迷×呀
发表于 2020-11-07 09:22:59
不知道为什么这么裸... vec存图排个序 然后按照dfs的顺序给节点小到大编号 顺被维护一个表示节点编号是的是哪个节点... #include <bits/stdc++.h> using namespace std; const int maxn = 8e5+10; struct ed 展开全文
头像 sunsetcolors
发表于 2020-11-10 01:10:47
Military Problem 题目地址: https://ac.nowcoder.com/acm/problem/112932 基本思路: 题目很长,可以概况为给你一棵树,每次查询,你要找到从开始按照遍历顺序,遍历到的第个节点,也就是找到点对应序后第个的节点就是了,然后注意超出子树的范围 展开全文
头像 rk_no
发表于 2020-11-07 16:04:58
题目: 给你一棵有根树。个询问,输出从为根的子树往下得到的序列中第个数,超出则输出。 做法: 求出树的序。每个询问输出结点在中往后第个数。 代码: #include <bits/stdc++.h> #define IOS ios::sync_with_stdio(false), ci 展开全文
头像 昵称很长很长真是太好了
发表于 2020-11-17 16:51:43
题意:给你一棵树,有q次查询,每次查询第n个结点的他的子树按照dfs序第x个元素是什么? 题解:一道dfs序的裸的题目。 首先需要一个数组存放第i个结点在dfs序中的位置再需要一个数组来存放dfs序的顺序在需要一个数组来存放一个结点子树的大小。(用来判断是否需要输出-1) 每次查询首先判断他的子树大 展开全文

等你来战

查看全部