社区讨论

80分求助

P2240【深基12.例1】部分背包问题参与者 2已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
1 条
当前快照
1 份
快照标识符
@lu7rav97
此快照首次捕获于
2024/03/26 10:27
2 年前
此快照最后确认于
2024/03/26 16:23
2 年前
查看原帖
CPP
#include<iostream>
#include<vector>
#include<iomanip>
#include<string.h>
#include<algorithm>
#include<math.h>
using namespace std;
int n,t,m[101],v[101];
double a[101];
int main()
{
    cin>>n>>t;
    for(int i=0;i<n;i++)
    {
        cin>>m[i]>>v[i];
        a[i]=v[i]*1.0/m[i];
    }
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<n-1-i;j++)
        {
            if(a[j]<a[j+1])
            {
                swap(a[j],a[j+1]);
				swap(v[j],v[j+1]);
				swap(m[j],m[j+1]);
            }
        }
    }
    double sum=0;
    int k=0;
    int j=0;
    while(j<n-1)
    {
        for(int i=0;i<m[j];i++)
        if(k<t)
        {
            sum+=a[j];
            k++;
        }
      j++;
    }
    printf("%.2lf",sum);
    return 0;
}

回复

2 条回复,欢迎继续交流。

正在加载回复...