0pt求调
查看原帖
0pt求调
1492770
Han0325楼主2025/6/28 19:51

感觉没什么问题

int restime;

cin>>n>>m>>k>>r;

for(int i=0;i<n;i++)cin>>exam[i];

sort(exam,exam+n);

for(int i=1;i<=m;i++) cin>>w[i];
for(int i=1;i<=m;i++) cin>>v[i];

for(int j=1;j<=m;j++)
{
	for(int i=1;i<=k;i++)
	{
		dp[i][j]=max(dp[i-1][j],dp[i-1][j-w[i]]+v[i]);
		
	}
}

int min=99999999;

for(int j=1;j<=m;j++)
{
	for(int i=1;i<=k;i++)
	{
		if(dp[i][j]>=20&&dp[i][j]<min)
		{
			min=dp[i][j];
		 } 
	}
} 

int tot=0;

restime=r-min;

for(int i=0;restime-exam[i]>=0;i++)
{
	tot++;
	restime-=exam[i];
}

cout<<tot;
2025/6/28 19:51
加载中...