P1855 榨取kkksc03

http://www.luogu.org/problem/show?pid=1855

题目描述有点神奇,kkk很强势。

普通的二维01背包,权当复习一下

 1 /*by SilverN*/
 2 #include<algorithm>
 3 #include<iostream>
 4 #include<cstring>
 5 #include<cstdio>
 6 #include<cmath>
 7 using namespace std;
 8 const int mxn=210;
 9 int f[mxn][mxn];
10 int w[mxn],t[mxn];
11 int n,M,T;
12 int read(){
13     int x=0,f=1;char ch=getchar();
14     while(ch<'0' || ch>'9'){if(ch=='-')f=-1;ch=getchar();}
15     while(ch>='0' && ch<='9'){x=x*10+ch-'0';ch=getchar();}
16     return x*f;
17 }
18 void dp(){
19     int i,j,k;
20     for(i=1;i<=n;i++){
21         for(j=M;j>=w[i];j--){
22             for(k=T;k>=t[i];k--){
23                 f[j][k]=max(f[j][k],f[j-w[i]][k-t[i]]+1);
24             }
25         }
26     }
27     return;
28 }
29 int main(){
30     n=read();M=read();T=read();
31     int i,j;
32     for(i=1;i<=n;i++)
33         w[i]=read(),t[i]=read();
34     dp();
35     printf("%d
",f[M][T]);
36     return 0;
37 }
原文地址:https://www.cnblogs.com/SilverNebula/p/5882366.html