码迷,mamicode.com
首页 > 其他好文 > 详细

【PAT甲级】1079 Total Sales of Supply Chain (25 分)

时间:2019-11-08 20:42:59      阅读:113      评论:0      收藏:0      [点我收藏+]

标签:ota   浮点   浮点数   chain   soft   c++   efi   pac   哪些   

题意:

输入一个正整数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 分)

标签:ota   浮点   浮点数   chain   soft   c++   efi   pac   哪些   

原文地址:https://www.cnblogs.com/ldudxy/p/11823045.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!