NYOJ 49 开心的小明(01背包)
1 #include<iostream>
2 #include<memory.h>
3 using namespace std;
4 #define max(a,b) a>b?a:b
5 struct goods{
6 int v; //价格
7 int p; //重要程度
8 int w; //v * p
9 }a[26];
10
11 int dp[30001];
12
13 int main()
14 {
15 // freopen("in.txt","r",stdin);
16 int t,i,j,N,m;
17 cin>>t;
18 while(t--)
19 {
20 memset(dp,0,sizeof(dp));
21 cin>>N>>m;
22 for(i = 0; i !=m; ++i)
23 {
24 cin>>a[i].v>>a[i].p;
25 a[i].w = a[i].v * a[i].p;
26 for(j = N; j >= a[i].v; --j)
27 dp[j] = max(dp[j], dp[j - a[i].v] + a[i].w);
28 }
29 cout<<dp[N]<<endl;
30 }
31 return 0;
32 }
2 #include<memory.h>
3 using namespace std;
4 #define max(a,b) a>b?a:b
5 struct goods{
6 int v; //价格
7 int p; //重要程度
8 int w; //v * p
9 }a[26];
10
11 int dp[30001];
12
13 int main()
14 {
15 // freopen("in.txt","r",stdin);
16 int t,i,j,N,m;
17 cin>>t;
18 while(t--)
19 {
20 memset(dp,0,sizeof(dp));
21 cin>>N>>m;
22 for(i = 0; i !=m; ++i)
23 {
24 cin>>a[i].v>>a[i].p;
25 a[i].w = a[i].v * a[i].p;
26 for(j = N; j >= a[i].v; --j)
27 dp[j] = max(dp[j], dp[j - a[i].v] + a[i].w);
28 }
29 cout<<dp[N]<<endl;
30 }
31 return 0;
32 }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步