#include<cstdio>
#include<cstring>
#define INF 0x3f3f3f3f
#define MAX(x,y) ((x)>(y)?(x):(y))
#define MIN(x,y) ((x)>(y)?(y):(x))
int dp[120][400];
int main()
{
int T;
scanf("%d",&T);
while(T--)
{
int n;
scanf("%d",&n);
memset(dp,0x3f,sizeof(dp));
for(int i=1;i<=n;i++)
{
int num;
scanf("%d",&num);
while(num--)
{
int b,p;
scanf("%d%d",&b,&p);
if(i==1)
{
dp[i][b]=MIN(dp[i][b],p);
}
else
{
for(int k=1;k<=400;k++)
{
if(dp[i-1][k]!=INF)
{
if(b>=k)
dp[i][k]=MIN(dp[i][k],dp[i-1][k]+p);
else
dp[i][b]=MIN(dp[i][b],dp[i-1][k]+p);
}
}
}
}
}
double res=0;
for(int i=0;i<=400;i++)
{
if(dp[n][i]!=INF)
{
res=MAX(res,(double)i/dp[n][i]);
}
}
printf("%.3lf\n",res);
}
}
poj 1018 dp
最新推荐文章于 2019-07-11 16:55:38 发布