给大家推荐个靠谱的公众号程序员探索之路,大家一起加油
#include<stdio.h>//转为01背包问题 n相当于体积m相当于数量,重要度相当于价值
#include<string.h>
int max(int a,int b){if(a>b) return a;else return b;
}
struct node{int v,p;
}s[25];
int dp[30000];
int main(){int N;scanf("%d",&N);while(N--){memset(dp,0,sizeof(dp));int n,m,i,j;scanf("%d %d",&n,&m);for(i=1;i<=m;i++){scanf("%d %d",&s[i].v,&s[i].p);for(j=n;j>=s[i].v;j--){dp[j]=max(dp[j],dp[j-s[i].v]+s[i].p*s[i].v);}}printf("%dn",dp[n]);}return 0;
}
本文发布于:2024-01-29 07:13:52,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170648363913602.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |