修改为c++代码
时间: 2023-11-04 10:18:31 浏览: 31
好的,下面是修改后的 C++ 代码:
```c++
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int T;
cin >> T;
while (T--) {
int n, m;
cin >> n >> m;
vector<int> a(n), b(n);
for (int i = 0; i < n; i++) {
cin >> a[i];
}
for (int i = 0; i < n; i++) {
cin >> b[i];
}
vector<int> dp(m+1);
for (int i = 0; i < n; i++) {
for (int j = m; j >= b[i]; j--) {
dp[j] = max(dp[j], dp[j-b[i]]+a[i]);
}
}
cout << dp[m] << endl;
}
return 0;
}
```
和 Python 版本相比,主要的区别在于输入和输出方式的不同,以及使用了 C++ 中的 vector 容器代替了 Python 中的列表。另外,C++ 中的数组下标从 0 开始,因此需要将状态转移方程中的 `k` 替换为 `j`,同时循环中的下标范围需要做一些调整。