01背包,滚动数组

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int dp[1005];
int main(){
int n,t;
while(cin>>n>>t){
int fi,ti;
memset(dp,0,sizeof(dp));
for(int i = 1;i <=n;i++)
{
scanf("%d %d",&fi,&ti);
for(int j = t;j >= ti;j--)
{
dp[j] = max(dp[j],dp[j-ti] + fi);
}
}
cout<<dp[t]<<endl;
}
return 0;
}

1 条评论

  • 1

信息

ID
1025
难度
4
分类
动态规划 | 背包 点击显示
标签
(无)
递交数
9921
已通过
4043
通过率
41%
被复制
14
上传者