求助(第一次做01背包
查看原帖
求助(第一次做01背包
936711
zj110409楼主2024/8/3 21:47

rt

#include<bits/stdc++.h>
#include<stack>
using namespace std;
long long now;
struct task
{
   long long x,t,y,r;
   long long sy=0;
}a[505];
bool com(task pre,task nxt)
{
   return pre.x<nxt.x;
}
int main()
{
   long long n,s1,s2,f[505][505]={};
   cin>>n>>s1>>s2;
   s2+=s1;
   for(int i=1;i<=n;i++)
   {
   	cin>>a[i].x>>a[i].t>>a[i].y>>a[i].r;
   	f[i][a[i].x]=a[i].t;
   } 
   for(int i=1;i<=n;i++)
   {
   	for(int j=1;j<=s2;j++)
   	{
   		if(j<s1) 
   		{
   			f[i][j]=min(f[i-1][j],f[i-1][j-a[i].x]+a[i].t);
   		}
   		else if(j>=s1&&j<s2) f[i][j]=min(f[i-1][j],f[i-1][j-a[i].y]+a[i].r);
   	}
   }
   cout<<f[n][s2];
}	
~~~~~~

它一直报0
2024/8/3 21:47
加载中...