蒟蒻是用三维数组写的,好像比内存限制多了4倍,有dalao可以帮忙看看怎么让内存变小点吗(
BDFS过,题解都是二位数组写的
#include <bits/stdc++.h>
using namespace std;
int a[105][2],dp[105][1005][505];
int main()
{
int n,m,k1;
cin>>n>>m>>k1;
for(int i=1;i<=k1;i++)
cin>>a[i][0]>>a[i][1];
for(int i=1;i<=k1;i++)
for(int j=1;j<=n;j++)
for(int k=1;k<=m;k++)
{
dp[i][j][k]=dp[i-1][j][k];
if(j>=a[i][0]&&k>=a[i][1]&&dp[i][j][k]<dp[i-1][j-a[i][0]][k-a[i][1]]+1)
dp[i][j][k]=dp[i-1][j-a[i][0]][k-a[i][1]]+1;
}
cout<<dp[k1][n][m-1]<<" ";
int ans=dp[k1][n][m-1];
int s=0x7ffff;
for(int j=1;j<=n;j++)
for(int k=1;k<=m;k++)
{
if(dp[k1][j][k]==ans)
{
s=min(s,k);
}
}
cout<<m-s<<endl;
return 0;
}
似乎代码本身没问题