• 贪吃的yjj(东方化改题+给的标程)


    emmmmmm……

    yjj到底是谁啊?

    杨家将?亚甲基?亚军奖?演讲家?盐焗鸡?

    算了不管了

    先放上原题:

    题目背景

    众所周知,YJJ学姐是一位能吃的学姐,她经常会把看好的吃的加进自己的购物

    车里面。而她又很穷,不舍得吃特别贵的食物。

    题目描述

    就在这时,一股神秘力量想要帮助JJ女士。如果帮JJ女士买一次食物(即购物车

    食物的非空子集),神秘力量可以得到这次购买食物的最大价值的钱,而要花

    费的代价是这次所购买食物价值的平均值。

    JJ女士因为有了神秘力量的帮助,变的越来越贪婪,所以每次往购物车里加的

    东西都会不比购物车中的任何物品价值低。

    神秘力量想要得到最多的钱,请问他购买一次食物能得到的最大价值是多少。

    为了得(da)到(dao)心(ti)灵(mu)的(de)安(nan)慰(du),神秘力量要询问当前的最大

    收益。

    输入输出格式

    输入格式

    第一行有一个整数n,表示操作次数。

    第1~n+1行,每行有一个操作类型:

    如果为1,则还有一个整数k,表示YJJ这次加入购物车的食物的价值;

    如果为2,表示神秘力量想知道当前的最大收益。

    输出格式

    对于每一个2操作,输出1行1个4位浮点数,表示当前的最大收益。

    答案四舍五入。

    然后是改题……

    题目背景

    众所周知,幽幽子很能吃,她经常会让妖梦把看好的吃的加进她的的购物

    车里面。但妖梦很穷,不舍得买特别贵的食物。

    题目描述

    就在这时,一股神秘力量想要帮助妖梦。如果妖梦帮幽幽子买一次食物(即购物车

    食物的非空子集),神秘力量可以得到这次购买食物的最大价值的钱,而要花

    费的代价是这次所购买食物价值的平均值。

    幽幽子因为有了神秘力量的帮助,变的越来越贪婪,所以每次往购物车里加的

    东西都会不比购物车中的任何物品价值低。

    神秘力量想要得到最多的钱,请问他购买一次食物能得到的最大价值是多少。

    为了达到题目的难度,神秘力量要询问当前的最大收益。

    输入输出格式

    输入格式

    第一行有一个整数n,表示操作次数。

    第1~n+1行,每行有一个操作类型:

    如果为1,则还有一个整数k,表示幽幽子这次加入购物车的食物的价值;

    如果为2,表示神秘力量想知道当前的最大收益。

    输出格式

    对于每一个2操作,输出1行1个4位浮点数,表示当前的最大收益。

    答案四舍五入。

    我想知道为什么我的做法和某些人说的差不多却只得了30分啊!

    不过这里正解:

     1 #include<cstdio>
     2 #include<stack>
     3 #include<cmath>
     4 #define N 500010
     5 typedef long long ll;
     6 using namespace std;
     7 ll q,a[N],l,r,sum[N],cnt,op,x;
     8 double ANS;
     9 
    10 ll read()
    11 {
    12     ll ans=0,fu=1;
    13     char j=getchar();
    14     for (;j<'0' || j>'9';j=getchar()) if (j=='-') fu=-1;
    15     for (;j>='0' && j<='9';j=getchar()) ans*=10,ans+=j-'0';
    16     return ans*fu;
    17 }
    18 
    19 double check(int x)
    20 {
    21     return 1.0*(a[cnt]+sum[x])/(x+1);
    22 }
    23 
    24 int main()
    25 {
    26     freopen("yjj.in","r",stdin);freopen("yjj.out","w",stdout);
    27     q=read();
    28     while (q--)
    29     {
    30     op=read();
    31     if (op==1)
    32     {
    33         a[++cnt]=read();
    34         sum[cnt]=sum[cnt-1]+a[cnt];
    35         while (x<cnt-1 && check(x+1)<check(x)) x++;
    36         ANS=max(ANS,a[cnt]-check(x));
    37     }
    38     else
    39         printf("%.4lf
    ",ANS);
    40     }
    41     return 0;
    42 }

    无fuck说

    嗯……就是这样,没了

  • 相关阅读:
    计算机安装Fedora操作系统——Win10+Linux双系统
    性能测试——压力测试指标
    系统吞吐量(TPS)、用户并发量、性能测试概念和公式
    在 数学吧 看到一个 极限题
    东方学帝 和 K歌之王 的 科学观 和 科学方法 的 对比
    走一走 欧拉先生 走过 的 路
    推导一个 经典物理 里 的 黑洞 的 坍缩半径
    四色定理 太简单了 , 来 玩 n 维空间 里 的 x 色定理
    今天看到了一个 求 平面图形 Centroid 的 办法
    记录一下这几天的一些讨论
  • 原文地址:https://www.cnblogs.com/aristocrat/p/8461744.html
Copyright © 2020-2023  润新知