1. 程式人生 > >1106 Lowest Price in Supply Chain (25 分)(樹的遍歷)

1106 Lowest Price in Supply Chain (25 分)(樹的遍歷)

求葉子結點處能活得最低價格以及能提供最低價格的葉子結點的個數

#include<bits/stdc++.h>

using namespace std;
const int N=1e5+10;
vector<int>vec[N];
int minn=0x3f3f3f3f;
int num=1;
void dfs(int v,int step)
{
    if(vec[v].size()==0){
        if(minn>step){
            minn=step;
            num=1;
        }
        else
if(minn==step){ num++; } } for(int i=0;i<vec[v].size();i++){ dfs(vec[v][i],step+1); } } int main() { int n; double price,rate; scanf("%d %lf %lf",&n,&price,&rate); for(int i=0;i<n;i++){ int k; scanf("%d",&k);
if(k!=0){ for(int j=0;j<k;j++){ int x; scanf("%d",&x); vec[i].push_back(x); } } } dfs(0,0); printf("%.4f %d\n",price*1.0*pow(1+rate/100.0,minn),num); return 0; }