//writer:Oier_szc
#include <bits/stdc++.h>
//#include <windows.h>
#define ED cerr<<endl;
#define TS cerr<<"I AK IOI"<<endl;
#define cr(x) cerr<<x<<endl;
#define cr2(x,y) cerr<<x<<" "<<y<<endl;
#define cr3(x,y,z) cerr<<x<<" "<<y<<" "<<z<<endl;
#define cr4(x,y,z,w) cerr<<x<<" "<<y<<" "<<z<<" "<<w<<endl;
#define pii pair<int,int>
#define fi first
#define se second
//#define int long long
using namespace std;
const int N=105,INF=2e9,mod=1e9+7;
int n,m;
vector<double> a[N];
int len[N];
double c[N],dp[N];
int main()
{
scanf("%d%d",&n,&m);
for(int i=1;i<=n;++i)
{
scanf("%lf%d",&c[i],&len[i]);
a[i].resize(len[i]+1);
for(int j=1;j<=len[i];++j) scanf("%d",&a[i][j]);
}
memset(dp,127,sizeof(dp));
dp[0]=0.0;
for(int i=1;i<=m;++i)
{
for(int j=1;j<=n;++j)
{
int cnt_0=0;
double d=0.0;
for(int k=1;k<=len[j];++k)
{
if(!a[j][k]) ++cnt_0;
else if(a[j][k]<=i) d+=(dp[i-a[j][k]]+c[j])/len[j];
}
d=d*len[i]/cnt_0;
dp[i]=min(dp[i],d);
}
}
printf("%.8lf\n",dp[m]);
return 0;
}
[Error] invalid types 'double [105][__gnu_cxx::__alloc_traits<std::allocator >::value_type {aka double}]' for array subscript
没遇到过这种情况。dalao轻喷。