题意
给你一棵树,每个数有自己的权值,然后让你求每个节点的儿子节点中有几个节点的权值是比它大的个数。
思路
离散化+树状数组+dfs
1.离散化:
for (int i = 1; i <= n; i ++) {
cin >> a[i]; b[i] = a[i]; }
sort(b + 1, b + 1 + n);
for (int i = 1; i <= n; i ++) a[i] = lower_bound(b + 1, b + 1 + n, a[i]) - b;
2.存图
for (int i = 2; i <= n; i ++)
{
int x; cin >> x;
vec[x].push_back(i)