f开小了
by MCH_Satrimiten @ 2021-07-21 09:15:34
`f[101][101]`,你找死?
@[wrtleo](/user/221435)
by MarSer020 @ 2021-07-21 09:15:53
@[wrtleo](/user/221435) $1≤T≤1000$
by MCH_Satrimiten @ 2021-07-21 09:16:16
不用滚动数组优化吗
by MCH_Satrimiten @ 2021-07-21 09:17:00
~~(你可以再开小一点)~~
$ 1 \leq T \leq 1000 $
by MarSer020 @ 2021-07-21 09:17:35
大家可以那我这个改好的代码尝试一下
结果根本不对 @[kkksc020](/user/475112)
```cpp
#include<iostream>
using namespace std;
int f[1001][1001],p[1001],ti[1001];
int m,t;
int main(){
cin>>t>>m;
for(int i=1;i<=m;i++){
cin>>ti[i]>>p[i];
}
for(int i=1;i<=m;i++){
for(int j=t;j>=0;j--){
if(j<ti[i]) f[i][j]=f[i-1][j];
f[i][j]=max(f[i-1][j],f[i-1][j-ti[i]]+p[i]);
}
}
cout<<f[m][t];
return 0;
}
```
by wrtleo @ 2021-07-21 09:21:33
~~为什么要二维的f数组~~
``` c
#include<iostream>
using namespace std;
int f[1005],p[105],ti[105];
int m,t;
int main(){
cin>>t>>m;
for(int i=1;i<=m;i++){
cin>>ti[i]>>p[i];
}
for(int i=1;i<=m;i++){
for(int j=t;j>=0;j--){
if(j>=ti[i]){
f[j]=max(f[j],f[j-ti[i]]+p[i]);
}
}
}
cout<<f[t];
return 0;
}
```
by Apple_Pie @ 2021-07-21 09:30:53
```cpp
#include<iostream>
using namespace std;
int f[1001][1001],p[1001],ti[1001];
int m,t;
int main(){
cin>>t>>m;
for(int i=1;i<=m;i++){
cin>>ti[i]>>p[i];
}
for(int i=1;i<=m;i++){
for(int j=t;j>=0;j--){
if(j<ti[i]) f[i][j]=f[i-1][j];
else f[i][j]=max(f[i-1][j],f[i-1][j-ti[i]]+p[i]);
}
}
cout<<f[m][t];
return 0;
}
```
else 都没有
by MCH_Satrimiten @ 2021-07-21 09:31:18
@[wrtleo](/user/221435)
by MCH_Satrimiten @ 2021-07-21 09:31:36
@[wrtleo](/user/221435) 我太弱了,二维调不出来,只会一维优化……
by MarSer020 @ 2021-07-21 09:32:19