1090. Highest Price in Supply Chain (25)

来源:互联网 发布:双11淘宝客服工作总结 编辑:程序博客网 时间:2024/05/16 08:10

    DFS走一遍,找出最大深度,如果最大深度的叶结点不止一个,则统计数量。

#include <iostream>#include <cstdio>#include <vector>#include <cmath>using namespace std;vector<vector<int>> chains;int maxLevel = 0;int maxNum = 0;void dfs(int src, int level){if(chains[src].empty()){if(maxLevel < level){maxLevel = level;maxNum = 1;}else if(maxLevel == level){maxNum++;}return;}for(auto& next : chains[src]){dfs(next, level + 1);}}int main(){int n;double p,r;cin >> n >> p >> r;chains.resize(n, vector<int>());int root = -1;for(int i = 0; i < n; ++i){int s;scanf("%d", &s);if(s == -1) root = i;else chains[s].push_back(i);}dfs(root, 0);printf("%.2f %d", p * pow(1+r/100, maxLevel), maxNum);return 0;}


0 0