您的位置:首页 > 其它

zoj 3607 Lazier Salesgirl 贪心

2012-10-07 09:50 441 查看
/*这道题有点坑。。比赛时有两道这个为背景的买面包。搞混了。 (lazier Or lazy)。
这道题 买面包 。人睡觉时。。客人来了就走。不会叫醒人。。
贪心。如果第从i个人开始买不到面包 。那他后面的人是肯定买不到的。如果第i个人买到了。那么前面的人
一定会买到。。
这里有个坑爹的地方。。更新平均值时 在maxtime<t[i+1]-t[i]的时候更新。
*/
#include<iostream>
#include<cstdio>
#include<cstring>
#define N 1011
using namespace std;
int p
,t
,Maxtime;
double money,sum,w;
int main()
{
freopen("test.txt","r",stdin);
int T,n;
scanf("%d",&T);
while(T--)
{
Maxtime=0;
money=0;
sum=0;
w=0;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d",&p[i]);
}
for(int i=1;i<=n;i++)
{
scanf("%d",&t[i]);
}
for(int i=1;i<=n;i++)
{
sum+=p[i];
if(Maxtime<t[i]-t[i-1])
{
Maxtime=t[i]-t[i-1];
}
if(i==n)
{
if(money*i<sum)
{
money=sum/i;
w=Maxtime;
}
continue;
}
if(Maxtime<t[i+1]-t[i]&&money*i<sum)//这里注意。个人认为是减少sum/i的次数。精度不丢失.
{
money=sum/i;
w=Maxtime;
}
}
printf("%.6f %.6f\n",w,money);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: