供应商系列题,father数组依旧超。遍历到每个子节点,求出每个零售商所有的商品销售价格。
#include <bits/stdc++.h>
using namespace std;
int main(){
int num;
double rootprice,rate;
cin>>num>>rootprice>>rate;
vector<vector<int>> g(num);
vector<int> price(num);
for(int i=0;i<num;i++){
int n;
cin>>n;
if(n==0) cin>>price[i];
for(int j=0;j<n;j++){
int id;
cin>>id;
g[i].push_back(id);
}
}
queue<pair<int,int>> q;
q.push(pair<int,int>(0,0));
double res=0.0;
while(!q.empty()){
auto fir=q.front();
q.pop();
if(g[fir.first].size()==0){
res+=price[fir.first]*1.0*rootprice*pow(1+0.01*rate,fir.second);
continue;
}
for(int i=0;i<g[fir.first].size();i++)q.push(pair<int,int>(g[fir.first][i],fir.second+1));
}
printf("%.1lf",res);
}
本文介绍了一个使用C++实现的算法,该算法通过遍历供应商和零售商的层级结构,计算所有零售商销售的商品总价格。考虑到从供应商到零售商的价格变化率,算法能够准确地计算出最终的总销售额。
969

被折叠的 条评论
为什么被折叠?



