#include<cmath>
#include<cstdio>
#include<iostream>
#include<vector>
using namespace std;
const int N=100005;
vector<vector<int>>ed;
int n,wei[N];
bool used[N];
double r,p,sum;
void dfs(int k,int deep)
{
if(wei[k])
sum+=pow(1+r/100,deep)*p*wei[k];
else
for(int son,i=0;i<ed[k].size();++i)
if(!used[son=ed[k][i]])
{
used[son]=true;
dfs(son,deep+1);
}
}
int main()
{
scanf("%d%lf%lf",&n,&p,&r);
ed.resize(n);
for(int k,no,i=0;i<n;++i)
{
scanf("%d",&k);
if(!k)
scanf("%d",wei+i);
else while(k--)
{
scanf("%d",&no);
ed[i].push_back(no);
}
}
used[0]=true;
dfs(0,0);
printf("%.1f",sum);
return 0;
}
container的大小不一样:pair,tuple作为结构体就是其包含元素类型大小的和
string 8字节 list 16字节 vector24字节 map、unordered_map、set、unordered_set 都是48字节,deque最大80字节,一开始用的deque直接超限了。