PAT A1079 Total Sales of Supply Chain(关于树的遍历)

DFS遍历

#include<cstdio>

#include<cmath>

using name spacestd;

const int maxn=10012;

struct node{

double data;

vector<int> child;

}Node[maxn];

int n;

double p,r,ans=0;

void DFS(int index,int depth){

if(Node[index].child.size()==0){

ans +=Node[index].data*pow(1+r,depth);

return;

}

for (int i=0;i<Node[index].child.size();i++){

DFS(Node[index].child[i],depth+1);

}}

int main(){

int x,child;

scanf("%d%lf%lf",&n,&p,&r);

r /=100;

for(int i=0;i<n;i++){

scanf("%d",&k);

if(k==0){

scanf("%lf",&Node[i].data);

}else{

for (int j=0;j<k;j++){

scanf("%d",&child);

Node[i].child.push_back(child);

}}}

DFS(0,0);

printf("%.lf'\n",p*ans);

return 0;

}

猜你喜欢

转载自www.cnblogs.com/jicheng1996/p/9691831.html