题目:题目详情 - L2-020 功夫传人 (25 分) (pintia.cn)
大意
假设家谱中的每个人只有1位师傅(除了祖师爷没有师傅);每位师傅可以带很多徒弟;并且假设辈分严格有序,即祖师爷这门武功的每个第
i
代传人只能在第i-1
代传人中拜1个师傅。我们假设已知祖师爷的功力值为Z
,每向下传承一代,就会减弱r%
,除非某一代弟子得道。现给出师门谱系关系,要求你算出所有得道者的功力总值。
思路
1.进行深搜。2.再定义一个主函数
坑点
注意数据类型的转换
步骤一
vector<int> c[maxm];
double val[maxm],z,r,sum;
void dfs(int id,double w)
{
if(val[id])
{
sum=sum+w*val[id];
}
else
{
for(int i=0;i<c[id].size();i++)
{
dfs(c[id][i],w*r);
}
}
}
步骤2