九校模拟——餐馆(restaurant)

1 餐馆(restaurant)
1.1 题目背景
铜企鹅是企鹅餐馆的老板,他正在计划如何使得自己本年度收益增加。
1.2 题目描述
共有n 种食材,一份食材i 需要花ti 小时不间断地进行播种,施肥,
直至收获。当然,一份食材i 是可以直接卖掉得到wi 块钱的。
招牌菜共有m 种,一份招牌菜i 需要消耗一定的食材,花Ti 小时不
间断地来烹饪,叫卖,并最终卖出得到Wi 块钱。
整个季度换算下来一共有Tmax 小时可供你使用,铜企鹅需要在这期间
赚到最多的钱,这样他才有足够多的钱来steam 剁手,或者氪金手游。
1.3 格式
1.3.1 输入格式
第一行一个整数T,表示数据组数。
令i 表示为当前数据内行数。
第一行三个整数n; m; Tmax,含义如题所示。
第二行至第n + 1 行,每行两个整数ti-1;wi-1,含义如题所示。
第n + 2 行至第n + m + 1 行,每行两个整数T i-n-1;W i-n-2,含义如题所示。
第n + m + 2 行至第n + 2m + 1 行,每行n 个整数,第j 个数dj 表示招牌菜i-n-m-1 需要dj 个食材j。
1.3.2 输出格式
对于每组数据,输出一行一个整数,表示你所能赚到的最多的钱。
1.4 样例
1.4.1 样例输入
3
1
1 48
2 2000
9 21864
5
4 4 46
17 52
4 36
5 43
16 62
9 31659
1 20431
4 623
1 11961
4 5 3 5
5 4 3 4
3 3 3 3
4 4 5 5
10 0 48
10 41
18 48
2 14
22 65
12 77
7 48
4 85
2 61
24 85
8 34
1.4.2 样例输出
53728
410
1464
1.5 数据范围
Subtask| 分值|n | m | T
1 |3 | 1| 1| 0
2 |20| 1 |1 |5
3 |10 |4| 4| 5
4 |17 |2000| 0| 5
5 |50| 2000 |2000| 4
对于100% 的数据,保证0 < ti; Ti <=Tmax<= 5000;
0 <=wi;Wi <=10^9,
每份招牌菜使用的食材的个数总数不超过10^5。

#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
using namespace std;
long long int i,j,T,n,m,tda,k,wa,f[5005],tot = 0,p;
struct node
{
  long long int t;
  long long int w;
}a[4005];
long long read() 
{
    int ret=0;
    char c;
    c=getchar();
    while(c>'9'||c<'0') {
        c=getchar();
    }
    while(c>='0'&&c<='9') {
        ret=ret*10+c-'0';
        c=getchar();
    }
    return ret;
}
int main()
{
  scanf("%lld",&T);
  for(p = 1;p  <= T;p++)
    {
      n = read();
      m = read();
      tda = read();
      for(i = 1;i <= tda;i++)
    {
      f[i] = 0;
    }
      for(i = 1;i <= n + m;i++)
    {
        a[i].t = read();
        a[i].w = read();
    }
      for(i = n + 1;i <= n + m;i++)
    {
      for(j = 1;j <= n;j++)
        {
            wa = read();
          a[i].t += a[j].t * wa;
        }
    }
      for(i = 1;i <= n + m;i++)
    {
         for(j = a[i].t;j <= tda;j++)
        {
          f[j] = max(f[j],f[j - a[i].t] + a[i].w);
        }
    }
      printf("%lld\n",f[tda]);
    }
  return 0;
}

这道题是一个多重背包哦,特别神奇,加个long long能多47分,如果要是加个读入优化,就AC啦。
对于招牌菜的时间要加上他所需要的食材的时间哦0.0

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值