##先献上代码
#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;
}
}
求回答心切
#等待大佬回答