一个XX产品行销总公司,只有一个boss,其有若干一级分销,一级分销又有若干二级分销,每个分销只有唯一的上级分销。
规定,每个月,下级分销需要将自己的总收入(自己的+下级上交的)每满100元上交15元给自己的上级。
现给出一组分销的关系,和每个分销的收入,请找出boss并计算出这个boss的收入。
比如:
将boss看成树根,那么上司与下属的关系就是图论中的有向边,本题本质是一个有向无环图,最终要求的是boss的收入也就是树根的收入,直接建图然后跑一遍dfs,每次用子结点更新父节点即可。
假如u为父节点,v是子节点,那么有val[u]+=val[v]/100*15
c++
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e5+10;