PAT.A1106 Lowest Price in Supply Chain
原创
©著作权归作者所有:来自51CTO博客作者小怪兽会微笑的原创作品,请联系作者获取转载授权,否则将追究法律责任
题意
给出一颗销售供应的树,树根唯一。树根价格为p,然后从根节点开始,每向下一层,价格上涨r%。求所有叶节点中能获得的最低价格和最低价格的叶节点个数。
样例(可复制)
10 1.80 1.00
3 2 3 5
1 9
1 4
1 7
0
2 6 1
1 8
0
0
0
注意点
- 本题与A1090非常类似,那题求的是最高价格,本题求的是最低价格
- 根节点深度为0
#include<bits/stdc++.h>
using namespace std;
int n,m,tmp,mindepth=100010,num=0;
double p,r;
vector<int> node[100010];
void DFS(int root,int depth){
if(node[root].size()==0){
if(depth==mindepth)num++;
if(depth<mindepth){
mindepth=depth;
num=1;
}
}
for(int i=0;i<node[root].size();i++){
DFS(node[root][i],depth+1);
}
}
int main(){
cin>>n>>p>>r;
r/=100;
for(int i=0;i<n;i++){
scanf("%d",&m);
while(m--){
scanf("%d",&tmp);
node[i].push_back(tmp);
}
}
DFS(0,0);
printf("%.4f %d",p*pow(1+r,mindepth),num);
return 0;
}