社区讨论

真想不出什么问题

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

讨论操作

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

当前回复
0 条
当前快照
1 份
快照标识符
@lu7pt8p2
此快照首次捕获于
2024/03/26 09:45
2 年前
此快照最后确认于
2024/03/26 10:22
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++)
//    {
//        cout<<a[i]<<" ";
//    }
//    cout<<endl;
    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]);
            }
        }
    }
//    for(int i=0;i<n;i++)
//    {
//        cout<<m[i]<<" ";
//    }
//    cout<<endl;
//    for(int i=0;i<n;i++)
//    {
//        cout<<a[i]<<" ";
//    }
    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++;
    }
    //cout<<fixed<<setprecision(2)<<sum;
    printf("%.2lf",sum);
    return 0;
}

回复

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

正在加载回复...