AcWing 1596. 供应链最低价格
原题链接
简单
作者:
leo123456
,
2020-08-24 11:29:39
,
所有人可见
,
阅读 520
#include<iostream>
#include<cstring>
#include<vector>
#include<cmath>
using namespace std;
const int N=100010;
int n;
double p,r;
vector<int> child[N];
int cnt[N];
void dfs(int u,int depth)
{
if(child[u].size()==0)
{
cnt[depth]++;
return;
}
for(int i=0;i<child[u].size();i++)
dfs(child[u][i],depth+1);
}
int main()
{
cin>>n>>p>>r;
r/=100;
for(int i=0;i<n;i++)
{
int childnum,childid;
cin>>childnum;
for(int j=0;j<childnum;j++)
{
cin>>childid;
child[i].push_back(childid);
}
}
dfs(0,0);
int min;
for(int i=0;i<n;i++)
if(cnt[i]!=0)
{
min=i;
break;
}
printf("%.4lf %d\n",p*pow(1+r,min),cnt[min]);
return 0;
}