题目链接:https://www.patest.cn/contests/gplt/L2-020
#include<bits/stdc++.h>
const int maxn =100100;
using namespace std;
int n,temp,k;
double z,r,ans;
vector<vector<int> >v;
bool vis[maxn];
void dfs(int index,double power){
if(vis[index]==true){
ans+=power*v[index][0];
return ;
}
for(int i=0;i<v[index].size();i++)dfs(v[index][i],power*(1.0-r/100.0));
}
int main(){
scanf("%d%lf%lf",&n,&z,&r);
v.resize(n);
for(int i=0;i<n;i++){
scanf("%d",&k);
if(k==0){
scanf("%d",&temp);
vis[i]=true;
v[i].push_back(temp);
}
for(int j=0;j<k;j++){
scanf("%d",&temp);
v[i].push_back(temp);
}
}
dfs(0,z);
cout<<(int)ans<<endl;
return 0;
}
907

被折叠的 条评论
为什么被折叠?



