1090 Highest Price in Supply Chain (25 分)C++——vector 万能头文件bits/stdc++.h

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

分析

用C写这个 第一个想法是建一个child[1e5+2][1e5+2],感觉有点大 系统会崩,而且还得额外再建一个num[1e5+2]存储每个节点孩子数量,于是改用C++超棒的vector

万能头文件

#include<bits/stdc++.h>在C++中一个顶万个,写一个头文件包含所有常用头文件

这道题类似1079 Total Sales of Supply Chain,只是求得东西不一样(瞬间投奔C++)

代码

#include<bits/stdc++.h>
using namespace std;
const int MAX=1e5+10;
vector<int>child[MAX];
int num=0,maxn=0;
void dfs(int v,int h){
//    printf("%d %d\n",v,child[v].size());
    if(child[v].size()==0){
        if(h>maxn){
            maxn=h;num=1;
        }else if(h==maxn) num++;
        return;
    }
    for(int i=0;i<child[v].size();i++){
        dfs(child[v][i],h+1);
    }
}
int main(){
    int n,k,m,root;
    double price,rate;
    scanf("%d %lf %lf",&n,&price,&rate);
    for(int i=0;i<n;i++){
        scanf("%d",&m);
        if(m==-1) root=i;
        else child[m].push_back(i);
    }
    dfs(root,0);
    rate=1+rate/100;
    printf("%.2lf %d",price*pow(rate,maxn),num);
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_36888550/article/details/88073026