zoukankan      html  css  js  c++  java
  • 【贪心+排序】营养膳食

    【题目描述】

    Mr.L正在完成自己的增肥计划。

    为了增肥,Mr.L希望吃到更多的脂肪。然而也不能只吃高脂肪食品,那样的话就会导致缺少其他营养。Mr.L通过研究发现:真正的营养膳食规定某类食品不宜一次性吃超过若干份。比如就一顿饭来说,肉类不宜吃超过1份,鱼类不宜吃超过1份,蛋类不宜吃超过1份,蔬菜类不宜吃超过2份。Mr.L想要在营养膳食的情况下吃到更多的脂肪,当然Mr.L的食量也是有限的。

    【输入格式】

    第一行包含三个正整数n(n≤200),m(m≤100)和k(k≤100)。表示Mr.L每顿饭最多可以吃m份食品,同时有n种食品供Mr.L选择,而这n种食品分为k类。第二行包含k个不超过10的正整数,表示可以吃1到k类食品的最大份数。接下来n行每行包括2个正整数,分别表示该食品的脂肪指数ai和所属的类别bi,其中ai≤100,bi≤k。

    【输出格式】

    包括一个数字即Mr.L可以吃到的最大脂肪指数和。

    【分析】

    按照脂肪指数排序,贪心一下。

    【代码】

     1 #include <cstdio>
     2 #include <iostream>
     3 #include <cstring>
     4 #include <algorithm>
     5 #include <queue>
     6 #include <cctype>
     7 #include <cmath>
     8 #include <time.h>
     9 #include <map>
    10 #include <set>
    11 #include <vector>
    12 
    13 using namespace std;
    14 
    15 #define ms(a,b) memset(a,b,sizeof(a))
    16 
    17 typedef long long ll;
    18 
    19 struct rec{
    20     int a,b;
    21 }q[210];
    22 int n,m,k;
    23 int r[110];
    24 
    25 inline int read()
    26 {
    27     int X=0,w=0; char ch=0;
    28     while(!isdigit(ch)) {w|=ch=='-';ch=getchar();}
    29     while(isdigit(ch)) X=(X<<3)+(X<<1)+(ch^48),ch=getchar();
    30     return w?-X:X;
    31 }
    32 
    33 bool cmp(rec x,rec y)
    34 {
    35     return x.a>y.a;
    36 }
    37 
    38 int main()
    39 {
    40     n=read(),m=read(),k=read();
    41     for (int i=1;i<=k;i++) r[i]=read();
    42     for (int i=1;i<=n;i++) q[i].a=read(),q[i].b=read();
    43     sort(q+1,q+1+n,cmp);
    44     int ans=0;
    45     for (int i=1;i<=n;i++)
    46     {
    47         if (m>0 && r[q[i].b]>0) ans+=q[i].a,m--,r[q[i].b]--;
    48     }
    49     printf("%d
    ",ans);
    50     return 0;
    51 }
    黎明的朝阳,会为苦难中最坚强的信念升起
  • 相关阅读:
    supervisor集群管理
    ansible安装es集群
    ansible安装应用实例
    ansible任务控制
    ansible的playbook基础
    ansiblie命令基础
    iptables命令详解
    ansible基础理论
    shell动态修改yml配置文件
    JAVA8 Stream()遍历求某列总和
  • 原文地址:https://www.cnblogs.com/Dawn-Star/p/9393118.html
Copyright © 2011-2022 走看看