01背包模版

来源:互联网 发布:薛之谦的回应 知乎 编辑:程序博客网 时间:2024/06/06 10:55

01背包问题

#include<cstdio>#include<cstring>using namespace std;int maxs(int x,int y){        if(x>y)                return x;        else return y;}int main(){        int T,N;        scanf("%d %d",&T,&N);        int F[N+5][T+5];        int time[N+5],value[N+5];        for(int i=1;i<=N;i++)        {                scanf("%d %d",&time[i],&value[i]);        }        memset(F,0,sizeof(F));        for(int i=1;i<=N;i++)        {                for(int j=1;j<=T;j++)                {                        if(time[i]<=j)                        {                                F[i][j]=maxs(F[i-1][j],F[i-1][j-time[i]]+value[i]);                        }                        else F[i][j]=F[i-1][j];                }        }        printf("%d\n",F[N][T]);}
0 0