[改了一下,样例能过了,但成 4 分了...](https://www.luogu.com.cn/record/122301906)
by liysjianttso @ 2023-08-22 21:47:18
终于过了,但还是想有人解答一下为什么第一个用 vector 不行
by liysjianttso @ 2023-08-22 21:54:47
看不到代码
by HongKiang @ 2023-08-22 22:07:08
@[HongKiang](/user/755911)
对不起,代码如下:
```cpp
#include<stdio.h>
#include<algorithm>
#include<vector>
#define MA 4000010
using namespace std;
int n,m,b[MA],dp[3000][3000],c[MA],w[MA],k;
vector<int> v[MA];
int main(){
scanf("%d%d",&m,&n);
for(int i = 1;i<=n;i++){
int cl;
scanf("%d%d%d",&c[i],&w[i],&cl);
k = max(k,cl);
v[cl].push_back(i);
}
for(int i = 1;i<=k;i++){
for(int j = m;j>=0;j--){
for(int p = 0;p<v[i].size();p++){
if(j-c[v[i][p]]>=0){
dp[i][j] = max(dp[i][j],dp[i-1][j-c[v[i][p]]]+w[v[i][p]]);
}
}
}
}
printf("%d",dp[k][m]);
}
```
by liysjianttso @ 2023-08-23 16:59:48
14行,你是v[cl].push_back(i);
你的向量是存什么的???
by HongKiang @ 2023-08-23 17:09:24
@[HongKiang](/user/755911)
就是存第 cl 组有哪些物品的序号的
(没看到消息回晚了抱歉)
by liysjianttso @ 2023-08-24 20:21:33
6,我也是,我把题目意思理解错了,还拿了98qwq
by Jasonde1024 @ 2023-10-02 17:18:00