1 条题解

  • 0
    @ 2025-8-24 22:12:26

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar lytqwq
    ..

    搬运于2025-08-24 22:12:26,当前版本为作者最后更新于2019-10-28 22:42:48,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    在吃一样量的食物时,明显吃好吃的舒适度最大,所以我们对每种食物的美味度排序,优先吃最美味的食物,然后对吃1,2,3......n种食物的最大舒适度取max,输出就行了。

    你以为这个题这么简单吗???

    坑点1:美味度的sum要开long long 。qwq

    坑点2:sum的平方会炸long long。所以我们要用sum先除食物种数再*sum 。qwq

    代码如下:

    #include<bits/stdc++.h>
    using namespace std;
    #define N 300001
    int n;
    int a[N];
    long long int sum;
    double maxn;
    int main()
    {
    	scanf("%d",&n);
    	for(int i=1;i<=n;i++)
    	{
    		scanf("%d",&a[i]);
    	}
    	sort(a+1,a+n+1);//排序
    	for(int i=n;i>=1;i--)//优先吃好吃的食物
    	{
    		sum+=a[i];
    		maxn=max(maxn,sum*1.0/(n-i+1)*sum);//先除再乘qwq
    	}
    	printf("%lf",maxn);
    }
    

    为什么我橙题都WA3遍啊QAQ

    • 1

    信息

    ID
    4598
    时间
    1000ms
    内存
    500MiB
    难度
    2
    标签
    递交数
    0
    已通过
    0
    上传者