1079 Total Sales of Supply Chain(25 分)

A supply chain is a network of retailers(零售商), distributors(经销商), and suppliers(供应商)-- everyone involved in moving a product from supplier to customer.

Starting from one root supplier, everyone on the chain buys products from one's supplier in a price P and sell or distribute them in a price that is r% higher than P. Only the retailers will face the customers. It is assumed that each member in the supply chain has exactly one supplier except the root supplier, and there is no supply cycle.

Now given a supply chain, you are supposed to tell the total sales from all the retailers.

Input Specification:

Each input file contains one test case. For each case, the first line contains three positive numbers: N (≤10​5​​), the total number of the members in the supply chain (and hence their ID's are numbered from 0 to N−1, and the root supplier's ID is 0); P, the unit price given by the root supplier; and r, the percentage rate of price increment for each distributor or retailer. Then N lines follow, each describes a distributor or retailer in the following format:

K​i​​ ID[1] ID[2] ... ID[K​i​​]

where in the i-th line, K​i​​ is the total number of distributors or retailers who receive products from supplier i, and is then followed by the ID's of these distributors or retailers. K​j​​ being 0 means that the j-th member is a retailer, then instead the total amount of the product will be given after K​j​​. All the numbers in a line are separated by a space.

Output Specification:

For each test case, print in one line the total sales we can expect from all the retailers, accurate up to 1 decimal place. It is guaranteed that the number will not exceed 10​10​​.

Sample Input:

10 1.80 1.00
3 2 3 5
1 9
1 4
1 7
0 7
2 6 1
1 8
0 9
0 4
0 3

Sample Output:

42.4

题目大意:给出树结构,找出零售商的总和。给出了供应商的原价,每经过一个经销商或者零售商价格上涨r%.求最终利润。

//我对题目的理解不好,这个r是个百分数,所以要/100,才可以的,并且当k=0时,后边存储的数是每个零售商的销量。

#include <iostream>
#include <vector>
#include <map>
#include<stdio.h>
#include<cmath>
using namespace std;
vector<int> vt[100000];
map<int,int> mp;
double sum=0;
double p,r;
void dfs(int nd,int level){if(vt[nd].size()==0){double temp=0;temp=pow(1+r,level)*mp[nd];sum+=temp;return ;}for(int i=0;i<vt[nd].size();i++){dfs(vt[nd][i],level+1);}
}int main() {int n;scanf("%d %lf %lf",&n,&p,&r);r=r/100;int tempk,temp;for(int i=0;i<n;i++){scanf("%d",&tempk);for(int j=0;j<tempk;j++){scanf("%d",&temp);vt[i].push_back(temp);}if(tempk==0){scanf("%d",&temp);mp[i]=temp;}}dfs(0,0);printf("%.1f",sum*p);return 0;
}

//第一次提交发生了段错误,检查发现是数据设置的太小了,应该是10^5才行,

1.使用邻接表来存储树,使用dfs进行遍历;

2.需要记住dfs的代码结构,首先是递归出口,出口处需要进行相应的计算;再是进行循环递归。

转载于:https://www.cnblogs.com/BlueBlueSea/p/9515066.html

PAT 1079 Total Sales of Supply Chain[比较]相关推荐

  1. PAT 1079. Total Sales of Supply Chain

    A supply chain is a network of retailers(零售商), distributors(经销商), and suppliers(供应商)-- everyone invo ...

  2. PAT甲级1079 Total Sales of Supply Chain:[C++题解] 树、结点到根结点的距离、树形dp、记忆化搜索

    文章目录 题目分析 题目链接 题目分析 来源:acwing 分析:下图是对样例的模拟图示,题目就是统计叶子结点卖出去的钱数.根据下图,我们第一步是建树,第二步是统计叶子结点到根结点的距离,然后才能知道 ...

  3. 1079 Total Sales of Supply Chain(甲级)

    1079 Total Sales of Supply Chain (25分) A supply chain is a network of retailers(零售商), distributors(经 ...

  4. PAT甲级 -- 1079 Total Sales of Supply Chain (25 分)

    A supply chain is a network of retailers(零售商), distributors(经销商), and suppliers(供应商)-- everyone invo ...

  5. 1079. Total Sales of Supply Chain (25)-PAT甲级真题(dfs,bfs,树的遍历)

    A supply chain is a network of retailers(零售商), distributors(经销商), and suppliers(供应商)-- everyone invo ...

  6. 1079. Total Sales of Supply Chain (25)

    A supply chain is a network of retailers(零售商), distributors(经销商), and suppliers(供应商)-- everyone invo ...

  7. 1079 Total Sales of Supply Chain

    1. 这道题考察的是树的层次遍历,结点需要有层这个属性,对于我来说,难点在于什么时候给层赋值,看书后知道应该是在加入队列之前(不管是根节点还是之后所有节点). 2. 一开始算得216,原因是把r直接加 ...

  8. 【PAT】A1079 Total Sales of Supply Chain

    A supply chain is a network of retailers(零售商), distributors(经销商), and suppliers(供应商)-- everyone invo ...

  9. PAT甲级1106 Lowest Price in Supply Chain:[C++题解]树、结点到根结点的距离、树形dp、记忆化搜索

    文章目录 题目分析 题目链接 题目分析 来源:acwing 分析:这道题是第三次做了. 和PAT甲级1079 Total Sales of Supply Chain:[C++题解] 树.结点到根结点的 ...

最新文章

  1. QT的QScriptValue类的使用
  2. linux7.0怎么设置中文,CentOS 7 yum安装zabbix 设置中文界面
  3. The “data“ option should be a function that returns a per-instance value in component definitions
  4. Linux的实际操作:文件目录类的实用指令(touch cp)
  5. 用Typescript 开发 node.js (方法2)
  6. 【Linux】ubuntu中怪异的vi编辑器
  7. 估计理论(6):如何确定BLUE?
  8. linux准备环境,组建自己的Linux-01准备环境
  9. SPSS22.0简体中文破解版(32位/64位)使用方法
  10. 基于OpenVINO的端到端DL网络-初步接触OpenVINO提供的例子(win+vs)
  11. 发那科服务器显示021,发那科(FANUC)系统报警代码大全
  12. PHP操控Excel视频教程
  13. quartus ii
  14. C primer plus编程练习答案(上)
  15. js下拉列表二级联动
  16. 光滑噪声数据常用的方法_整理一份详细的数据预处理方法
  17. oracle数据库存储结构语句,oracle之物理数据库结构描述
  18. CF 1646D Weight the Tree 树形dp
  19. 【笔记】ssd mobilenet 网络
  20. 2019/01/07 一位前端实习生 艰辛过程 励志 实习周记(三)——第二 三周

热门文章

  1. SQL Server高级查询之T-SQL编程(存储过程)
  2. .net core 应用程序“default web site”中的服务器错误_Net程序员讲JAVA系列——Spring Boot“科普篇”...
  3. 如何从stackoverflow的api 中获取是数据_如何修复Vue中的 “this is undefined” 问题
  4. 数据结构—堆栈(思维导图)
  5. UnityShader33:GPU 实例化
  6. python相关工具使用技巧(pip)
  7. matlab2c使用c++实现matlab函数系列教程-sinh函数
  8. \n 屏幕换行 源码换行
  9. [BZOJ2733] [HNOI2012] 永无乡 (splay启发式合并)
  10. UI 自定义视图 ,视图管理器