[洛谷1855]榨取kkksc03
思路:
基础动规。
1 #include<cstdio> 2 #include<cctype> 3 #include<cstring> 4 #include<algorithm> 5 inline int getint() { 6 char ch; 7 while(!isdigit(ch=getchar())); 8 int x=ch^'0'; 9 while(isdigit(ch=getchar())) x=(((x<<2)+x)<<1)+(ch^'0'); 10 return x; 11 } 12 int main() { 13 int n=getint(),m=getint(),t=getint(); 14 int f[m+1][t+1]; 15 memset(f,0,sizeof f); 16 f[0][0]=1; 17 int ans=0; 18 for(int i=1;i<=n;i++) { 19 int mm=getint(),tt=getint(); 20 for(int j=m-mm;j>=0;j--) { 21 for(int k=t-tt;k>=0;k--) { 22 if(f[j][k]) { 23 f[j+mm][k+tt]=std::max(f[j+mm][k+tt],f[j][k]+1); 24 ans=std::max(ans,f[j+mm][k+tt]); 25 } 26 } 27 } 28 } 29 printf("%d\n",ans-1); 30 return 0; 31 }