洛谷 P1855 榨取kkksc03 题解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了洛谷 P1855 榨取kkksc03 题解相关的知识,希望对你有一定的参考价值。

此文为博主原创题解,转载时请通知博主,并把原文链接放在正文醒目位置。

题目链接:https://www.luogu.org/problem/show?pid=1855

题目描述

洛谷的运营组决定,如果一名oier向他的教练推荐洛谷,并能够成功的使用(成功使用的定义是:该团队有20个或以上的成员,上传10道以上的私有题目,布置过一次作业并成功举办过一次公开比赛),那么他可以浪费掉kkksc03的一些时间的同时消耗掉kkksc03的一些金钱以满足自己的一个愿望。

Kkksc03的时间和金钱是有限的,所以他很难满足所有同学的愿望。所以他想知道在自己的能力范围内,最多可以完成多少同学的愿望?

输入输出格式

输入格式:

第一行,n M T,表示一共有n(n<=100)个愿望,kkksc03 的手上还剩M(M<=200)元,他的暑假有T(T<=200)分钟时间。

第2~n+1行 mi,ti 表示第i个愿望所需要的时间和金钱。

输出格式:

一行,一个数,表示kkksc03最多可以实现愿望的个数。

输入输出样例

输入样例#1:
6 10 10
1 1
2 3 
3 2
2 5
5 2
4 3
输出样例#1:
4

说明

提示 第1,2,3,6个

 

分析:

首先拒绝给洛谷打广告

此题和NASA的食物计划(P1507)几乎是完全一样,随手一起A了。

所以此文毫无意义

 

AC代码:

 1 #include<cstdio>
 2 #include<algorithm>
 3 #include<cmath>
 4 #include<cstring>
 5 
 6 const int MAXN = 205;
 7 
 8 inline void read(int &x)
 9 {
10     char ch = getchar(),c = ch;x = 0;
11     while(ch < 0 || ch > 9) c = ch,ch = getchar();
12     while(ch <= 9 && ch >= 0) x = (x<<1)+(x<<3)+ch-0,ch = getchar();
13     if(c == -) x = -x;
14 }
15 
16 inline int max(int a,int b)
17 {return a>b?a:b;}
18 
19 int n,M,T,t[MAXN],m[MAXN],f[MAXN][MAXN];
20 
21 int main()
22 {
23     read(n),read(M),read(T);
24     for(int i = 1;i <= n;++ i)
25         read(t[i]),read(m[i]);
26     for(int i = 1;i <= n;++ i)
27         for(int j = M;j >= m[i];-- j)
28             for(int k = T;k >= t[i];-- k)
29                 f[j][k] = max(f[j][k],f[j-m[i]][k-t[i]]+1);
30     printf("%d\n",f[M][T]);
31     return 0;
32 }

 

以上是关于洛谷 P1855 榨取kkksc03 题解的主要内容,如果未能解决你的问题,请参考以下文章

P1855 榨取kkksc03

P1855 榨取kkksc03

luogu P1855 榨取kkksc03

[洛谷1855]榨取kkksc03

每周刷题记录--by noble_

洛谷 P2392 kkksc03考前临时抱佛脚