首页 > 其他 > 详细

ZOJ 3607 Lazier Salesgirl(贪心)

时间:2014-03-11 13:15:16      阅读:802      评论:0      收藏:0      [点我收藏+]

题目:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3607

题意:一个卖面包的小姑娘,给第i个来买面包的人的价格是pi, 每个人的时间是ti,

问用最小的时间间隔 求最大的平均值。

刚开始没有 考虑,后一个的时间间隔要大于之前的最大的时间间隔 才行。。。

bubuko.com,布布扣
 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cstring>
 4 #include <cstdlib>
 5 #include <algorithm>
 6 using namespace std;
 7 const int maxn = 1000+10;
 8 const int INF = 1<<28;
 9 int p[maxn], t[maxn];
10 
11 int main()
12 {
13     int i, j, T, n;
14     double sum, ty, tty;
15     double Maxaver, x, Mint;
16     while(~scanf("%d", &T))
17     {
18         while(T--)
19         {
20             Maxaver = -INF;
21             tty = -INF;
22             Mint = INF;
23             sum = 0;
24             scanf("%d", &n);
25             for(i = 1; i <= n; i++)
26             scanf("%d", &p[i]);
27             for(j = 1; j <= n; j++)
28             scanf("%d", &t[j]);
29 
30             t[n+1] = INF;   //初始一个最大值
31             for(i = 1; i <= n; i++)
32             {
33                 ty = t[i] - t[i-1];
34                 if(ty > tty)
35                 tty = ty;
36                 sum+=p[i];
37                 x = sum*1.0/i*1.0;
38                 if(x > Maxaver && t[i+1]-t[i]>tty)
39                 {
40                     Mint = tty;
41                     Maxaver = x;
42                 }
43             }
44             printf("%.6lf %.6lf\n", Mint, Maxaver);
45         }
46     }
47     return 0;
48 }
bubuko.com,布布扣

ZOJ 3607 Lazier Salesgirl(贪心),布布扣,bubuko.com

ZOJ 3607 Lazier Salesgirl(贪心)

原文:http://www.cnblogs.com/bfshm/p/3589539.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!