1 条题解

  • 0
    @ 2026-10-2 2:21:40

    C++ :

    #include<iostream>
    #include<cstdio>
    #include<cstdlib>
    #include<cstring>
    #include<algorithm>
    #define INF 999999999
    #define N 101
    using namespace std;
    struct node{
        int w;
        int c;
        double g;
    }a[N],temp;
    int main()
    {
        int t;
        int W,m;
    
        cin>>t;
        while(t--)
        {
            double cnt=0;
            cin>>W>>m;
            for(int i=1;i<=m;i++)
            {
                cin>>a[i].w>>a[i].c;
                a[i].g=a[i].c*1.0/a[i].w;
            }
            for(int i=1;i<=m;i++)
                for(int j=i+1;j<=m;j++)
                    if(a[i].g<a[j].g)
                    {
                        temp=a[i];
                        a[i]=a[j];
                        a[j]=temp;
                    }
            for(int i=1;i<=m;i++)
            {
                if(W>=a[i].w)
                {
                    cnt+=a[i].c;
                    W-=a[i].w;
                }
                else
                {
                    cnt+=a[i].g*W;
                    break;
                }
            }
            printf("%.2lf\n",cnt);
        }
        return 0;
    }
    
    • 1

    信息

    ID
    3900
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者