HDU-2570迷瘴(贪心)

Posted liyexin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDU-2570迷瘴(贪心)相关的知识,希望对你有一定的参考价值。

地址:http://acm.hdu.edu.cn/showproblem.php?pid=2570

解析:

想让最后的体积最大,肯定是先加入浓度小的。

所以贪心思路是,浓度从小到大加入。

注意:

n种同体积的浓度分别为a,b,c...那么混合以后浓度为:(a+b+c+..)/n

所以从小到大加入即可。

#include<cstdio>
#include<stack>
#include<map>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
typedef long long ll;
const int maxn=1e5+20;
int a[121];
struct node
{
    ll l,r;
}st[maxn];
bool cmp(node a , node b)
{
    if(a.l==b.l)
        return a.r<b.r;
    return a.l<b.l;
}
int main()
{    // 4 0 20
    int t;
    cin>>t;
    while(t--)
    {
        int n,v,w;
        cin>>n>>v>>w;
        for(int i=1;i<=n;i++)
            cin>>a[i];
        sort(a+1,a+1+n);
        double c=0;
        int vv=0;
        int ok = 0 ;
        for(int i=1;i<=n;i++)
        {
            if((c+a[i])/i<=w)
                {
                    c+=a[i];
                    vv++;
                    ok=1;
                }
            else
                break;
        }
        if(!ok)
            cout<<"0 0.00"<<endl;
        else
            printf("%d %.2lf
",vv*v,c/vv/100);
    }
}

 

以上是关于HDU-2570迷瘴(贪心)的主要内容,如果未能解决你的问题,请参考以下文章

763. 划分字母区间-贪心算法

贪心热门问题8:划分字母区间

Contig|scaffold|N50|L50|NG50|贪心算法|de bruiji graph|

CodeForces 1005D Polycarp and Div 3(思维贪心dp)

贪心算法----区间覆盖问题(POJ2376)

[M贪心] lc763. 划分字母区间(贪心+代码实现)