题目
https://www.luogu.com.cn/problem/CF922E
这是一个大佬的代码,看懂了,但是不知道时间复杂度
#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll c[1010],cost[1010],dp[1010][10010],sum=0,n,w,b,x,ans=0;
int main()
{ cin>>n>>w>>b>>x;
for(int i=1;i<=n;++i)
cin>>c[i];
for(int i=1;i<=n;++i)
cin>>cost[i];
memset(dp,-1,sizeof(dp));
dp[0][0]=w;
for(int i=1;i<=n;++i)
{
sum+=c[i];
for(int j=0;j<=sum;++j)
for(int k=0;k<=c[i] && k<=j;++k)
{
if(dp[i-1][j-k]==-1)
continue;
if(dp[i-1][j-k]-k*cost[i]<0)
continue;
dp[i][j]=max(dp[i][j],min(dp[i-1][j-k]-k*cost[i]+x,w+j*b));
}
}
for(int i=0;i<=sum;++i)
if(dp[n][i]!=-1)
ans=i;
cout<<ans<<endl;
return 0;
}