@[Ichigaya_Arisa](/space/show?uid=70850) 我知道了,重覆盖
```
#include<bits/stdc++.h>
using namespace std;
#define re register
#define un unsigned
int t,m;
int v[105],w[105];
int dp[106][1005];
int main()
{
int ans = 0;
for(re un int i = 1; i <= 105; ++i)memset(dp[i],-0x3f,sizeof(dp[i]));
scanf("%d %d",&t,&m);
for(re un int i = 1; i <= m; ++i){
scanf("%d %d",&v[i],&w[i]);
}
dp[0][0] = 0;
for(int i = 1; i <= m; ++i){
for(int j = 0; j <= t; ++j){
dp[i][j] = max(dp[i - 1][j],dp[i][j]);
if(j + v[i] <= t)dp[i][j + v[i]] = max(dp[i][j + v[i]],dp[i - 1][j] + w[i]);
ans = max(dp[i][j],ans);
}
}
printf("%d",ans);
}
```
by moye到碗里来 @ 2018-07-09 21:42:41
这样就能a
by moye到碗里来 @ 2018-07-09 21:44:17
@[Ichigaya_Arisa](/space/show?uid=70850) 由于是往之后的去更改,而对于节点的赋值在更改之后,这样会造成节点的重覆盖导致答案不能更新
by moye到碗里来 @ 2018-07-09 21:46:18