球球大佬帮我算算时间复杂度
  • 板块题目总版
  • 楼主Pumpk1n
  • 当前回复12
  • 已保存回复12
  • 发布时间2024/7/22 20:00
  • 上次更新2024/7/22 20:31:15
查看原帖
球球大佬帮我算算时间复杂度
815835
Pumpk1n楼主2024/7/22 20:00

题目

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;
}
2024/7/22 20:00
加载中...