Forrest


私信TA

用户名:dotcpp0717441

访问量:4002

签 名:

等  级
排  名 88
经  验 9136
参赛次数 1
文章发表 121
年  龄 0
在职情况 教师
学  校 优学乐程
专  业

  自我简介:

解题思路:

注意事项:

参考代码:

#include<iostream>
using namespace std;
const int N = 1e4 + 10;
int a[N], b[N], f[N];
int n, m, cnt = 1;  
int main()
{
	cin >> n >> m;
	for(int i = 1; i <= m; i ++){
		int v, p, q;
		cin >> v >> p >> q;
		if(!q){
			a[cnt] = v * p;
			b[cnt ++] = v;
		}
		else{
			b[q] += v;
			a[q] += v * p;
		}
	}
	for(int i = 1; i <= cnt; i ++)
		for(int j = n; j >= b[i]; j --)
			f[j] = max(f[j],f[j-b[i]] + a[i]);
	cout << f[n];

	return 0;
}


 

0.0分

0 人评分

  评论区

  • «
  • »