ZJU-PAT 1079. Total Sales of Supply Chain (25) 浙大2014年上机复试第三题
2014-04-03 16:49
609 查看
#include<iostream> #include<cstdio> using namespace std; struct Node { int parent; //父节点 bool flag; //是否是retailers int level; //第几层 int num; //销售多少个 }; Node tt[100005]; int n; double p,r,sum; int Jisuan(int num) { if(tt[num].level!=-1) return tt[num].level; else return Jisuan(tt[num].parent)+1; } double Count[100005]; void run() { scanf("%d",&n); scanf("%lf%lf",&p,&r); Count[0]=p; for(int i=1; i<100005; i++) { Count[i]=Count[i-1]*(1.0+r/100.0); } for(int i=1; i<n; i++) { tt[i].level=-1; } tt[0].level=0; for(int i=0; i<n; i++) { int tmp; scanf("%d",&tmp); if(tmp==0) { scanf("%d",&tmp); tt[i].flag=true; tt[i].num=tmp; } else { tt[i].flag=false; for(int j=0; j<tmp; j++) { int t; scanf("%d",&t); tt[t].parent=i; } } } for(int i=1; i<n; i++) { tt[i].level=Jisuan(i); } sum=0.0; for(int i=0; i<n; i++) { if(tt[i].flag==true) sum+=tt[i].num*Count[tt[i].level]; } printf("%.1lf\n",sum); } int main() { run(); return 0; }
#include<iostream> #include<cstdio> #include<queue> using namespace std; const int N=100005; struct Node { int parent; //父节点 vector<int> child; //孩子 int level; //第几层 int num; //销售多少个 }; Node tt ; int n; double p,r,sum; double Count ; void BFS() { queue<Node> Q; Q.push(tt[0]); tt[0].level=0; while(!Q.empty()) { Node tmp=Q.front(); Q.pop(); for(int i=0;i<tmp.child.size();i++) { tt[tmp.child[i]].level=tmp.level+1; Q.push(tt[tmp.child[i]]); } } } void Init() { scanf("%d",&n); scanf("%lf%lf",&p,&r); Count[0]=p; for(int i=1; i<N; i++) { Count[i]=Count[i-1]*(1.0+r/100.0); } for(int i=0; i<n; i++) { int tmp; scanf("%d",&tmp); if(tmp==0) { scanf("%d",&tmp); tt[i].num=tmp; } else { tt[i].num=0; for(int j=0; j<tmp; j++) { int t; scanf("%d",&t); tt[t].parent=i; tt[i].child.push_back(t); } } } } void Jisuan() { sum=0.0; for(int i=0; i<n; i++) { if(tt[i].num) sum+=tt[i].num*Count[tt[i].level]; } printf("%.1lf\n",sum); } int main() { Init(); BFS(); Jisuan(); return 0; }
相关文章推荐
- ZJU-PAT 1078. Hashing (25) 浙大2014年上机复试第二题
- ZJU-PAT 1057. Stack (30)---17有3组超时 浙大2013年上机复试第三题
- ZJU-PAT 1055. The World's Richest (25) 浙大2013年上机复试第二题
- ZJU-PAT 1057. Stack (30) 浙大2013年上机复试第三题
- ZJU-PAT 1077. Kuchiguse (20) 浙大2014年上机复试第一题
- ZJU-PAT 1080. Graduate Admission (30) 浙大2014年上机复试第四题
- ZJU-PAT 1054. The Dominant Color (20) 浙大2013年上机复试第一题
- pat 1080. Graduate Admission (30) 浙大复试上机第四题
- 浙大2012上机 PAT 1033. To Fill or Not to Fill (25)
- ZJU-PAT 1056. Mice and Rice (25) 浙大2013年上机复试第四题
- 浙大PAT考试1077~1080(2014上机复试题目)
- 浙大2012上机 PAT 1032. Sharing (25)
- 浙大PAT考试1077~1080(2014上机复试题目)
- ZJU 09 复试上机 第三题
- 浙大2013复试:PAT 1055 The World's Richest (25)
- 浙大2013复试:PAT 1056. Mice and Rice (25)
- 1005. 继续(3n+1)猜想 (25) (ZJUPAT 数学)
- 【C++】浙大PAT (Basic Level)1015. 德才论 (25)
- 浙大PAT (Advanced Level) Practise 1043 Is It a Binary Search Tree (25)
- 1020. 月饼 (25) (数学啊 ZJU_PAT)