PAT-A1106

    xiaoxiao2021-03-25  183

    #include<stdio.h> #include<vector> #include<math.h> using namespace std; int n, min_level=110000, num=0; double p, r; struct pnode{ vector<int> child; }node[100010]; void DFSorder(int root, int depth){ if(node[root].child.size()==0){ if(depth<min_level){min_level=depth; num=1;} else if(depth==min_level){num++;} } for(int it=0;it<node[root].child.size();it++){ DFSorder(node[root].child[it],depth+1); } } int main(){ int i, j, loop, temp; scanf("%d%lf%lf",&n,&p,&r); for(i=0;i<n;i++){ scanf("%d",&loop); if(loop!=0){ for(j=0;j<loop;j++){ scanf("%d",&temp); node[i].child.push_back(temp); } }//if } r=1+r/100; DFSorder(0,0); printf("%0.4f %d\n",p*pow(r,min_level),num); return 0; }
    转载请注明原文地址: https://ju.6miu.com/read-5809.html

    最新回复(0)