| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
那位大牛帮忙看看啊 小弟不胜感激 折腾了两天了 不知道哪里错了。。。。。#include<iostream>
using namespace std;
#define MAX 0x7fffffff;
struct ff
{
int price;
int brand;
}f[101][101];
int dp[101][10000];
int MMIN(int a,int b)
{
if(a>b)
return b;
return a;
}
int main()
{
int bb[100000]={0};
int t,n,m[101];
int i,j,k;
int mmin,mmax;
double ans;
cin>>t;
while(t--)
{
cin>>n;
memset(bb,0,sizeof(bb));
mmin=MAX;
mmax=-111111;
for(i=0;i<n;i++)
{
scanf("%d",&m[i]);
for(j=0;j<m[i];j++)
{
scanf("%d%d",&f[i][j].brand,&f[i][j].price);
bb[f[i][j].brand]=1;
if(f[i][j].brand>mmax)
mmax=f[i][j].brand;
if(f[i][j].brand<mmin)
mmin=f[i][j].brand;
}
}
// memset(dp,0,sizeof(dp));
for(i=0;i<n;i++)
dp[i][mmin-1]=MAX;
for(j=0;j<n;j++)
{
for(i=mmin;i<=mmax;i++)
{
dp[j][i]=MAX;
for(k=0;k<m[j];k++)
{
if(f[j][k].brand>=i&&bb[i]==1)
dp[j][i]=MMIN(dp[j][i],dp[j-1][i]+f[j][k].price);
}
}
}
ans=0;
for(i=mmin;i<=mmax;i++)
{
if(i*1.0/dp[n-1][i]>ans)
ans=i*1.0/dp[n-1][i];
}
printf("%.3lf\n",ans);
}
return 0;
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator