3 条题解

  • 0
    @ 2025-12-28 11:38:45

    #include<bits/stdc++.h> using namespace std; struct coin{ int m,v; }a[105]; int k,w,s,c; double ans; bool cmp(coin x,coin y){ return x.vy.m>y.vx.m; } void solve(){ ans=0; cin>>w>>s; c=w; for(int j=1;j<=s;j++){ cin>>a[j].m>>a[j].v; } sort(a+1,a+s+1,cmp); int cnt=0; bool flag=false; for(int j=1;j<=s;j++){ if(a[j].m>c){ cnt=j; flag=true; break; } c-=a[j].m; ans+=a[j].v; } if(flag){ ans+=1.0ca[cnt].v/a[cnt].m; } printf("%.2lf\n",ans); } int main(){ cin>>k; for(int i=1;i<=k;i++){ solve(); } return 0; }

    信息

    ID
    411
    时间
    1000ms
    内存
    256MiB
    难度
    9
    标签
    递交数
    12
    已通过
    4
    上传者