7.16_B题

来源:互联网 发布:张艺兴和sm知乎 编辑:程序博客网 时间:2024/05/16 17:21

题目链接:http://code.bupt.edu.cn/problem/p/417/

裸的01背包,不懂的同学可以看下本博客转载的《背包九讲》

代码:

#include <iostream>#include <cstdio>#include <cmath>#include <cstring>#define N 11111using namespace std;int a[N];long long b[N];long long dp[N];int main(){    int c;    scanf("%d",&c);    while(c--)    {        memset(dp,0,sizeof(dp));        int t;        int n;        scanf("%d%d",&t,&n);        for(int i=0;i<n;i++)            scanf("%d%lld",&a[i],&b[i]);        for(int i=0;i<n;i++)            for(int j=t;j>=a[i];j--)            dp[j]=max(dp[j],dp[j-a[i]]+b[i]);        printf("%lld\n",dp[t]);    }    return 0;}


0 0
原创粉丝点击