PAT甲级1079 Total Sales of Supply Chain (25 分)
Posted ldudxy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PAT甲级1079 Total Sales of Supply Chain (25 分)相关的知识,希望对你有一定的参考价值。
题意:
输入一个正整数N(<=1e5),表示共有N个结点,接着输入两个浮点数分别表示商品的进货价和每经过一层会增加的价格百分比。接着输入N行每行包括一个非负整数X,如果X为0则表明该结点为叶子结点接着输入一个整数表示该零售商进货的数量,X不为零则接着输入X个正整数表示它的下级经销商是哪些结点。输出所有零售商进货的总价。(结点从0~N-1,0为根节点即供应商)
代码:
#define HAVE_STRUCT_TIMESPEC
#include<bits/stdc++.h>
using namespace std;
int a[100007],lv[100007],ans[100007];
vector<int>v[100007];
void dfs(int x){
for(int it=0;it<v[x].size();++it){
lv[v[x][it]]=lv[x]+1;
dfs(v[x][it]);
}
return ;
}
int main(){
//ios::sync_with_stdio(false);
//cin.tie(NULL);
//cout.tie(NULL);
int n;
cin>>n;
double p,r;
cin>>p>>r;
int cnt=0;
for(int i=0;i<n;++i){
int x,num;
cin>>x;
if(!x){
cin>>num;
a[i]=num;
ans[++cnt]=i;
}
for(int j=1;j<=x;++j){
cin>>num;
v[i].push_back(num);
}
}
dfs(0);
double sum=0;
for(int i=1;i<=cnt;++i){
double tamp=1.0*a[ans[i]]*p*pow(1.0+0.01*r,lv[ans[i]]);
sum+=tamp;
}
printf("%.1lf",sum);
return 0;
}
以上是关于PAT甲级1079 Total Sales of Supply Chain (25 分)的主要内容,如果未能解决你的问题,请参考以下文章
PAT (Advanced Level) 1079. Total Sales of Supply Chain (25)
PAT Advanced 1079 Total Sales of Supply Chain (25) [DFS,BFS,树的遍历]
PAT A1079 Total Sales of Supply Chain(关于树的遍历)
PAT甲级--Total Sales of Supply Chain (25)