zoukankan      html  css  js  c++  java
  • 贪吃的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说

    嗯……就是这样,没了

  • 相关阅读:
    [Oracle DBA学习笔记] STARTUP详解
    亦步亦趋完成在CentOS 6.4下安装Oracle 11gR2
    ‘程序员’与‘页面仔’
    Linux下建立Oracle服务及其开机自启动
    解析并验证IE6及之前版本的'!important’ BUG
    浅谈CSS选择器中的空格
    在CentOS安装CMake
    关于CentOS下RPM的一些实例
    CentOS配置ssh无密码登录的注意点
    CentOS下的账户管理
  • 原文地址:https://www.cnblogs.com/aristocrat/p/8461744.html
Copyright © 2011-2022 走看看