• hdu 1009--greedy


    /** rief hdu 1009--greedy
     *
     * param date 2014/7/18
     * param state AC
     * 
    eturn
     *
     */
    
    #include <iostream>
    #include <fstream>
    #include <algorithm>
    #include <cstring>
    
    using namespace std;
    
    const int MAXN=1001;
    
    struct Data
    {
        int J;
        int F;
        /*
        bool operator < (const Data& d) const
        {
            return d.
        }
        */
        double price;
    };
    
    Data data[MAXN];
    
    
    bool Comp(const Data& a,const Data& b)
    {
        if(a.price>=b.price)
            return true;
        else return false;
    }
    
    
    //void Knapsack(int n,int m,int v[],int w[],int x[])
    void Knapsack(int n,int m)
    {
        //Sort(data,data+n,Comp);
        sort(data,data+n,Comp);
        int i;
        int c=m;
        double sum=0.0;
        for(i=0;i<n;i++)
        {
            if(c>=data[i].F)
            {
                c-=data[i].F;
                sum+=data[i].J;
            }
            else
            {
                sum+=c*1.0/data[i].F*data[i].J;
                c=0;
            }
        }
        printf("%.3f",sum);
        cout<<endl;
    }
    
    int main()
    {
        //freopen("input.txt","r",stdin);
        int M,N;
        while(scanf("%d%d",&M,&N)!=EOF)
        {
            if(M==-1 && N==-1)break;
            for(int i=0;i<N;i++)
            {
                //cin>>J[i]>>F[i];
                cin>>data[i].J>>data[i].F;
                data[i].price=data[i].J*1.0/data[i].F;
            }
            //
            Knapsack(N,M);
        }
        return 0;
    }
    

  • 相关阅读:
    这个是我得标题:1548669163
    Mahout学习
    MySQL
    Ubuntu
    java小程序100例
    java实现链表从尾部输出
    空格替换
    java 实现二维数组查找
    JAVA实现分页
    java 程序参数详解
  • 原文地址:https://www.cnblogs.com/wgwyanfs/p/6737397.html
Copyright © 2020-2023  润新知