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

DFS遍历

#include

#include

using name spacestd;

const int maxn=10012;

struct node{

double data;

vector 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

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

scanf("%d",&k);

if(k==0){

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

}else{

for (int j=0;j

scanf("%d",&child);

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

}}}

DFS(0,0);

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

return 0;

}

 

你可能感兴趣的:(PAT A1079 Total Sales of Supply Chain(关于树的遍历))