1 条题解

  • 0
    @ 2025-8-24 21:33:56

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar ShineEternal
    **

    搬运于2025-08-24 21:33:56,当前版本为作者最后更新于2018-07-22 11:05:42,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    看到楼下的几位后笑了。。。

    既然是贪心,那多半需要排序,答案要的是脂肪,所以按脂肪从大到小排序。

    #include<cstdio>
    #include<algorithm>
    using namespace std;
    int b[10001];
    struct ben
    {
    	int y,z;
    }a[10001];
    int cmp(const ben &a,const ben &b)
    {
    	return a.y>b.y;
    }//脂肪从大到小
    int main()
    {
    	int n,m,k;
    	scanf("%d%d%d",&n,&m,&k);
    	for(int i=1;i<=k;i++)
    	{
    		scanf("%d",&b[i]);
    	}
    	for(int i=1;i<=n;i++)
    	{
    		scanf("%d%d",&a[i].y,&a[i].z);
    	}
    	sort(a+1,a+n+1,cmp);
    	int ans=0;//答案别忘赋初值
    	for(int i=1;i<=n;i++)
    	{
    		if(b[a[i].z]>0&&m>0)//还没超过这一类和总共规定
    		{
    			b[a[i].z]--;
    			m--;
    			ans+=a[i].y;//加上脂肪
    		}
    	}
    	printf("%d",ans);
    	return 0;
    } 
    

    求过

    • 1

    信息

    ID
    1073
    时间
    1000ms
    内存
    125MiB
    难度
    2
    标签
    递交数
    0
    已通过
    0
    上传者