pat1079. Total Sales of Supply Chain (25)
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 (<=105), 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:
Ki ID[1] ID[2] ... ID[Ki]
where in the i-th line, Ki 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. Kj being 0 means that the j-th member is a retailer, then instead the total amount of the product will be given after Kj. 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 1010.
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
BFS。由于数量是long long级别,用DFS会段错误。
#include<cstdio>
#include<algorithm>
#include<iostream>
#include<stack>
#include<vector>
#include<set>
#include<map>
#include<queue>
using namespace std;
map<long long,vector<long long> > edge;
map<long long,long long> re;
int main(){
//freopen("D:\\INPUT.txt","r",stdin);
long long n,i,num,v;
double price,r,total=;
scanf("%lld %lf %lf",&n,&price,&r);
for(i=;i<n;i++){
scanf("%lld",&num);
if(!num){
scanf("%lld",&re[i]);
continue;
}
while(num){
scanf("%lld",&v);
edge[i].push_back(v);
num--;
}
}
queue<long long> q;
q.push();
long long cur;
long long last,e=;
//last记录当前层不为叶结点的节点
if(re.count()){//root可能也会直接向顾客出售
total+=price*re[];
q.pop();
}
r=r/;
price*=+r;//当前下一层向外卖的价格
while(!q.empty()){
cur=q.front();
q.pop();
for(i=;i<edge[cur].size();i++){
if(re.count(edge[cur][i])){
total+=price*re[edge[cur][i]];
continue;
}
q.push(edge[cur][i]);
last=edge[cur][i];
}
if(cur==e){
e=last;
price*=+r;
}
}
printf("%.1lf\n",total);
return ;
}
断错误的DFS。
#include<cstdio>
#include<algorithm>
#include<iostream>
#include<stack>
#include<vector>
#include<set>
#include<map>
using namespace std;
map<long long,vector<long long> > edge;
map<long long,long long> re;
map<long long,bool> vis;
void DFS(long long num,double &total,double price,double r){
vis[num]=true;
long long i;
if(!edge[num].size()){ //cout<<num<<endl; total+=re[num]*price;
return;
}
for(i=;i<edge[num].size();i++){
if(!vis[edge[num][i]]){
DFS(edge[num][i],total,price*(+r),r);
}
}
}
int main(){
//freopen("D:\\INPUT.txt","r",stdin);
long long n,i,num,v;
double price,r,total=;
scanf("%lld %lf %lf",&n,&price,&r);
for(i=;i<n;i++){
vis[i]=false;
scanf("%lld",&num);
if(!num){
scanf("%lld",&re[i]);
continue;
}
while(num){
scanf("%lld",&v);
edge[i].push_back(v);
num--;
}
}
DFS(,total,price,r/);
printf("%.1lf\n",total);
return ;
}
pat1079. Total Sales of Supply Chain (25)的更多相关文章
- PAT1079 :Total Sales of Supply Chain
1079. Total Sales of Supply Chain (25) 时间限制 250 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHE ...
- 1079. Total Sales of Supply Chain (25)【树+搜索】——PAT (Advanced Level) Practise
题目信息 1079. Total Sales of Supply Chain (25) 时间限制250 ms 内存限制65536 kB 代码长度限制16000 B A supply chain is ...
- PAT 甲级 1079 Total Sales of Supply Chain (25 分)(简单,不建树,bfs即可)
1079 Total Sales of Supply Chain (25 分) A supply chain is a network of retailers(零售商), distributor ...
- PAT-1079 Total Sales of Supply Chain (树的遍历)
1079. Total Sales of Supply A supply chain is a network of retailers(零售商), distributors(经销商), and su ...
- 1079. Total Sales of Supply Chain (25)-求数的层次和叶子节点
和下面是同类型的题目,只不过问的不一样罢了: 1090. Highest Price in Supply Chain (25)-dfs求层数 1106. Lowest Price in Supply ...
- 1079. Total Sales of Supply Chain (25)
时间限制 250 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue A supply chain is a network of r ...
- 1079. Total Sales of Supply Chain (25) -记录层的BFS改进
题目如下: A supply chain is a network of retailers(零售商), distributors(经销商), and suppliers(供应商)-- everyon ...
- PAT Advanced 1079 Total Sales of Supply Chain (25) [DFS,BFS,树的遍历]
题目 A supply chain is a network of retailers(零售商), distributors(经销商), and suppliers(供应商)– everyone in ...
- PAT (Advanced Level) 1079. Total Sales of Supply Chain (25)
树的遍历. #include<cstdio> #include<cstring> #include<cmath> #include<vector> #i ...
随机推荐
- 字符编码ASCII、Unicode、GB
计算机的存储都是二进制的,那么我们平时看到的各种字符都需要通过按照一定的格式转换成为二进制才能在被计算机识别与处理.这个过程便成为编码.常见的编码方式有ASCII.Unicode.GB2312等. 1 ...
- hibernate 持久化对象的生命周期
持久化对象的生命周期 瞬态(自由态) 表示对象在内存中存在,在数据库中没有数据相关,比如刚刚new出来的一个对象 持久态 持久态指的是持久化对象处于由Hibernate管理的状态,这种状态下持久化对象 ...
- JavaScript原型模式(prototype)
1.原型是一个对象,其他对象可以通过它实现属性的继承所有对象在默认的情况下都有一个原型,因为原型的本身也是对象,所以一个类的真正原型是被类的内部[prototype]属性所指出.每个函数都有一个属性叫 ...
- Matlab2012a下配置LibSVM—3.18
1.下载最新版LibSVM 点击此处打开网页,点击zip file下载最新版的文件并解压放在任何目录下,建议放在安装目录便于查找.如我的文件解压在路径C:\ProgramFiles\MATLAB\R2 ...
- Hander----使用
public class MainActivity extends Activity { private EditText UITxt; private Button updateUIBtn; pri ...
- 查看Linux、Tomcat、JAVA版本信息
查看Linux.Tomcat.JAVA版本信息 [root@test1 bin]# cd /usr/local/tomcat/tomcat_jdt/bin/ [root@test1 bin]# sh ...
- TortoiseSVN 日常操作指南
TortoiseSVN A Subversion client for Windows Stefan Küng Lübbe Onken Simon Large 2005/01/17 19:09:21 ...
- 第七篇 elasticsearch 链接mysql不会更新
这是我键的索引 "settings":{ "number_of_shards":3, "number_of_replicas":2 }, & ...
- 局域网中使用的IP地址有哪些?
当我们建设一个局域网的时候,需要为网络中的每台计算机分配一个IP地址.那么都有哪些IP地址可以使用在局域网中呢?局域网中的IP地址有什么规定呢? 在局域网中,我们是不能使用如202.106.45.11 ...
- PCLVisualizer可视化类(1)
PCLVisualizer可视化类是PCL中功能最全的可视化类,与CloudViewer可视化类相比,PCLVisualizer使用起来更为复杂,但该类具有更全面的功能,如显示法线.绘制多种形状和多个 ...