01背包空间优化


#pragma GCC optimize(2)
#pragma GCC optimize(1)
#include<bits/stdc++.h> 
typedef long long ll;
typedef unsigned long long ull;
const ull base=131;
#define MAX 1009
#define PI 3.141592653589793
using namespace std;
int f[MAX],bb[MAX][2];
int m,n;
int main() 
{
    cin>>n>>m;
    for(int i=1;i<=n;i++)
    cin>>bb[i][0]>>bb[i][1];
    for(int i=1;i<=n;i++){
       for(int j=m;j>=bb[i][0];--j){
           f[j]=max(f[j],f[j-bb[i][0]]+bb[i][1]);
        }
    }
    cout<<f[m]<<endl;
}

 

#pragma GCC optimize(2)
#pragma GCC optimize(1)
#include<iostream>
#include<queue> 
#include<vector>
typedef long long ll;
typedef unsigned long long ull;
const ull base=131;
#define MAX 1009
#define PI 3.141592653589793
using namespace std;
int f1[MAX],f2[MAX],bb[MAX][2];
int m,n;
int main() 
{
    cin>>n>>m;
    for(int i=1;i<=n;i++)
    cin>>bb[i][0]>>bb[i][1];
    for(int i=1;i<=n;i++){
       for(int j=1;j<=m;j++){
           if(j<bb[i][0])
           f2[j]=f1[j];
           else
           f2[j]=max(f1[j],f1[j-bb[i][0]]+bb[i][1]);
        }
        memcpy(f1,f2,sizeof(f2));
    }
    cout<<f2[m]<<endl;
}

 

posted on 2022-05-10 15:11  zesure  阅读(32)  评论(0编辑  收藏  举报

导航