A1079-Total Sales of Supply Chain

也不难,DFS深度计算,乘一下就行

#include<bits/stdc++.h>
using namespace std;
int N;
double p,r;
struct node
{
    double data;
    vector<int> child;
}Node[100010];
double sum=0;

void DFS(int index,int depth)
{
    if(Node[index].child.size()==0)
    {
        sum+=Node[index].data*pow(1+r/100,depth)*p;
        return;
    }
    
    for(int i=0;i<Node[index].child.size();i++)
        DFS(Node[index].child[i],depth+1);  
}
int main()
{
    scanf("%d %lf %lf",&N,&p,&r);
    int num=0;
    int child;
    int amount;
    for(int n=0;n<N;n++)
    {
        scanf("%d",&num);
        if(num==0)
        {
            scanf("%d",&amount);
            Node[n].data=amount;
        }
        else
        {
            for(int i=0;i<num;i++)
            {
                scanf("%d",&child);
                Node[n].child.push_back(child);
            }
        }           
    }
    DFS(0,0);
    printf("%.1f\n",sum);
    return 0;
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容