天天看點

洛谷P1855 榨取kkksc03(dp)

榨取kkksc03

題目描述

洛谷2的團隊功能是其他任何oj和工具難以達到的。借助洛谷強大的伺服器資源,任何學校都可以在洛谷上零成本的搭建oj并高效率的完成訓練計劃。

為什麼說是搭建oj呢?為什麼高效呢?

洛谷P1855 榨取kkksc03(dp)

因為,你可以上傳私有題目,團隊外别人是無法看到的。我們還能幫你們評測!

你可以建立作業,給組員布置任務,檢視組員的完成情況,還可以點評任意一份代碼!

你可以建立比賽!既可以是oi賽制還可以是acm賽制!既可以是團隊内部的私有比賽,也可以公開賽,甚至可以指定誰可以參加比賽。這樣,搞“x校聯賽”最合适不過了。洛谷憑借這個功能,希望能夠提供公開及私有比賽的另外一個平台。

洛谷P1855 榨取kkksc03(dp)

值得說明的是,本次比賽就是采用團隊私有題目+邀請比賽的機制。

洛谷的營運組決定,如果一名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個

分析:一個簡單的背包,按正常套路就行了。

代碼

#include <cstdio>
#define N 300
using namespace std;

int a[N],b[N],f[N][N],n,t,p;

int max(int x,int y){return x>y?x:y;}

int main()
{
    scanf("%d%d%d",&n,&p,&t);
    for (int i=1;i<=n;i++)
        scanf("%d%d",&a[i],&b[i]);
    for (int i=1;i<=n;i++)
        for (int j=p;j>=a[i];j--)
            for (int k=t;k>=b[i];k--)
                f[j][k]=max(f[j][k],f[j-a[i]][k-b[i]]+1);
    printf("%d",f[p][t]);
}
           
dp