PAT 甲级 1106 Lowest Price in Supply Chain 图的遍历

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhaohaibo_/article/details/88038574

https://pintia.cn/problem-sets/994805342720868352/problems/994805362341822464

题目大意:
在一颗树里找叶子结点的最小深度 和 这个深度上的叶子结点个数


为什么AC不了呢,有人可以帮我看一下么

#include <iostream>
#include <vector>
#include <cstdio>
#include <algorithm>
using namespace std;

const int maxn = 100010;
vector<int> E[maxn];
int N;
double P, r;
int dep[maxn];
int mindeep = 1e9;

void dfs(int cur, int deep)
{
    if (E[cur].empty()) 
    {
        dep[cur] = deep;
        mindeep = min(mindeep, deep);
    }
    for (int i = 0; i < E[cur].size(); i ++ ) dfs(E[cur][i], deep + 1);
}


int main ()
{
    ios::sync_with_stdio(false);
    cin >> N >> P >> r;
    r /= 100;
    for (int i = 0; i < N; i ++ )
    {
        int k;
        cin >> k;
        for (int j = 0; j < k; j ++ )
        {
            int tmp;
            cin >> tmp;
            E[i].push_back(tmp);
        }
    }

    dfs(0, 0);

    for (int i = 0; i < mindeep; i ++ )
        P *= 1 + r;
    
    printf("%.4f ", P);
    int cur = 0;
    for (int i = 0; i < N; i ++ )
        if (dep[i] == mindeep) cur ++;
    cout << cur << endl;
    return 0;
}

猜你喜欢

转载自blog.csdn.net/zhaohaibo_/article/details/88038574