1033.采药1
Posted guanwen769aaaa
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1033.采药1相关的知识,希望对你有一定的参考价值。
1 #include <cstdio> 2 #include <cstring> 3 #include <iostream> 4 #include <algorithm>//庆祝自己第一道01背包问题hhhhhh 5 #include <string.h> 6 using namespace std; 7 int time[110]; 8 int value[110]; 9 int tab[1100][1100];//此处吐槽一下。。数组开小居然会wa而不是re。。。。。 10 int T,M,i,j; 11 int main() 12 { 13 while(scanf("%d%d",&T,&M)!=EOF) 14 { 15 for(i=1;i<=M;i++) 16 { 17 scanf("%d%d",&time[i],&value[i]); 18 } 19 memset(tab,0,sizeof(tab));//memset 20 for(i=1;i<=M;i++)//member 21 { 22 for(j=1;j<=T;j++)//time 23 { 24 if(j<time[i])//如果空间盛放不下 25 { 26 tab[i][j]=tab[i-1][j]; 27 } 28 else 29 { 30 tab[i][j]=max(tab[i-1][j],tab[i-1][j-time[i]]+value[i]); 31 }//从放进去或者是不放进去选择价值最大的情况 32 } 33 } 34 cout<<tab[M][T]<<‘ ‘; 35 } 36 return 0; 37 }
…… | time=0 | time=1 | time=2 | …… |
第四个包 | ||||
第三个包 | ||||
第二个包 | ||||
第一个包 |
以上是关于1033.采药1的主要内容,如果未能解决你的问题,请参考以下文章
P1048 [NOIP2005 普及组] 采药(01背包 dp)
P1048 [NOIP2005 普及组] 采药(01背包 dp)