PAT1079 Total Sales of Supply Chain (25)
2016-01-28 20:53
411 查看
题目链接:
http://www.nowcoder.com/pat/5/problem/4309题目描述:
题目要求根据某商品的供应链条,求零售商的销售额之和,零售商的售价不同在于每一级都有涨幅,对不同层的零售商按照所在层求销售额,然后全部加和。只有叶子结点才是零售商。
题目分析:
记录树的层数的BFS的变形。代码:
#include<iostream> #include<string.h> #include<vector> #include<queue> #include<math.h> using namespace std; double result,P,r; int N; int level[100005]; vector<vector<int>> map; void bfs(){ result=0; queue<int> q; q.push(0); while (!q.empty()){ int i = q.front(); q.pop(); int lev = level[i]; int size = map[i].size(); for (int j = 0; j < size; j++){ if (map[i][0] == 0){ result += map[i][1] * P*pow(1+r*(1.0)/100,level[i]); break; } level[map[i][j]] = lev + 1; q.push(map[i][j]); } } } int main() { memset(level, 0, sizeof(level)); scanf("%d%lf%lf",&N,&P,&r); for (int i = 0; i < N; i++){ vector<int> v; map.push_back(v); int nexts,next; cin >> nexts; if (nexts == 0){ map[i].push_back(0); int retailers; cin >> retailers; map[i].push_back(retailers); } while (nexts--){ cin >> next; map[i].push_back(next); } } bfs(); printf("%.1lf",result); return 0; }
相关文章推荐
- C#实现获取系统目录并以Tree树叉显示的方法
- C语言实现输入一颗二元查找树并将该树转换为它的镜像
- 纯jsp打造无限层次的树代码
- php遍历树的常用方法汇总
- PHP树的深度编历生成迷宫及A*自动寻路算法实例分析
- PHP生成树的方法
- Java Swing中的表格(JTable)和树(JTree)组件使用实例
- python数据结构树和二叉树简介
- libdvbpsi源码分析(四)PAT表解析/重建
- PAT配置
- 什么是端口复用动态地址转换(PAT) 介绍配置实例
- MikroTik layer7-protocol
- PAT是如何工作的
- B+树到MySQL之innoDB
- ExtJS 4 树
- 数据库表TreeView树的快速生成
- Oracle 查询所有的父节点和子节点
- PAT 乙级题:1002. 写出这个数 (20)
- 树的双亲存储:
- 树