Codeforces Round #316 (Div. 2) D. Tree Requests
来源:互联网 发布:淘宝客服工资待遇 编辑:程序博客网 时间:2024/05/22 13:13
用深搜为每个结点建立一个时间序in[], out[],在搜索过程中把在同一深度,同一颜色结点的时间保存起来。查询的时候,若结点为v, 则所查询的所有节点的时间序在in[v]和out[v]之间,再用二分查找各个颜色结点个数。
#include <bits/stdc++.h>#define maxn 500005using namespace std;vector<int> v[maxn];vector<int> f[maxn][26];int n, m; string s;int in[maxn], out[maxn], tot;void dfs(int h, int x){ in[x] = ++tot; f[h][s[x-1]-'a'].push_back(tot); for(int i = 0; i < v[x].size(); i++) dfs(h+1, v[x][i]); out[x] = tot;}int main(){// freopen("in.txt", "r", stdin); int a; scanf("%d%d", &n, &m); for(int i = 2; i <= n; i++){ scanf("%d", &a); v[a].push_back(i); } cin >> s; tot = 0; dfs(1, 1); int v, h; for(int i = 0; i < m; i++){ scanf("%d%d", &v, &h); int p = 0; for(int j = 0; j < 26; j++){ int d = upper_bound(f[h][j].begin(), f[h][j].end(), out[v]) - lower_bound(f[h][j].begin(), f[h][j].end(), in[v]); if(d&1) p++; if(p > 1) break; } if(p > 1) puts("No"); else puts("Yes"); } return 0;}
0 0
- Codeforces Round #316 (Div. 2) D. Tree Requests
- Codeforces Round #316 (Div. 2) D. Tree Requests dfs_clock,二分
- Codeforces Round #316 (Div. 2) D Tree Requests
- Codeforces Round #316 (Div. 2) D. Tree Requests
- Codeforces Round #316 (Div. 2) D. Tree Requests (DFS序)
- Codeforces Round #316 (Div. 2)D. Tree Requests
- Codeforces Round #316 (Div. 2) D. Tree Requests
- 善用stl。。。。。。。。Codeforces Round #316 (Div. 2) D - Tree Requests
- Codeforces Round #316 (Div. 2) D. Tree Requests
- Tree Requests-Codeforces Round #316 (Div. 2)
- Codeforces Round #316 (Div.2)Tree Requests
- Codeforces Round #316 (Div. 2) D. Tree Requests(DFS+状态压缩)
- Codeforces Round #316 (Div. 2)-D. Tree Requests-DFS+二分+hash
- Codeforces Round #316 (Div. 2) D. Tree Requests 树 离线在线 算法
- *Codeforces Round #316 (Div. 2)- D. Tree Requests (dfs+二分)
- Codeforces Round #316 (Div. 2) D. Tree Requests(DFS序+BFS+二分)
- Codeforces Round #316 D. Tree Requests 树剥分
- Codeforces Round #316 Tree Requests
- iOS 视图控制器转场详解
- 购物篮分析分类算法——频繁模式挖掘(聚类算法)
- HDU 5690 All X
- bzoj 3714
- [Contest] 2016"百度之星" - 初赛(Astar Round2A)
- Codeforces Round #316 (Div. 2) D. Tree Requests
- 练习三1023
- 类的实例化
- 乔布斯的成功说明了什么
- BZOJ 3436 小k的农场(差分约束)
- fullpage.js---全屏滚动插件
- 带你一步步实现android引导页面
- Spark 2.0介绍:SparkSession创建和使用相关API
- 【bzoj】3436 小k的农场 差分约束