~~蒟蒻在线求助~~
查看原帖
~~蒟蒻在线求助~~
279063
flash_starr楼主2020/10/19 19:50

##先献上代码

#include<bits/stdc++.h>
using namespace std;
int n,m,k,r,ti[11],w[11],v[11],a[1505];
int z,sum;
int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	cin>>n>>m>>k>>r;
	for(int i=1;i<=n;i++)
	cin>>ti[i];
	for(int i=1;i<=m;i++)
	cin>>w[i];
	for(int j=1;j<=m;j++)
	cin>>v[j];
	for(int i=1;i<=m;i++)
	{
		for(int j=r;j>=w[i];j--)
		{
			a[j]=max(a[j],a[j-w[i]]+v[i]);
		}
	}
	for(int i=1;i<=r;i++)
	{
		if(a[i]>=k)
		{
			z=r-i;
			break;
		}
	}
	sort(ti+1,ti+1+n);
	for(int i=1;i<=n;i++)
	{
		if(z-ti[i]<0)
			break;
		z-=ti[i];
		sum++;
	}
	cout<<sum;
	return 0;
}

这里

for(int i=1;i<=r;i++)
{
	if(a[i]>=k)
	{
		z=r-i;
		break;
	}
}

为什么不能写成

for(int i=r;i>=1;i--)
{
	if(a[i]<k)
	{
		z=i+1;
		break;
	}
}

求回答心切 #等待大佬回答

2020/10/19 19:50
加载中...