为啥输出都是0
查看原帖
为啥输出都是0
389398
SBsimon楼主2021/4/6 14:06
#include<bits/stdc++.h>
using namespace std;
struct FUCK{
	int t,l,c;
}a[10020];
long long c[4000020];
int t,n;
int _01(int i,int k){
	//for(int j=t;j>=a[i].t;--j)
	//	c[j]=0;
	for(int j=t;j>=a[i].t*k;--j)
        c[j]=max(c[j],c[j-a[i].t*k]+a[i].l*k); 
}
int wq(int i){
	//for(int j=a[i].t;j<=t;++j)
	//	c[j]=0;
	for(int j=a[i].t;j<=t;++j)
    	c[j]=max(c[j],c[j-a[i].t]+a[i].l);
}
int main(){
	cin>>n>>t;
	for(int i=1;i<=n;++i)
		cin>>a[i].l>>a[i].t>>a[i].c;
	for(int i=1;i<=n;++i)
	{
		if(a[i].c*a[i].t>=t||a[i].c==0)
			wq(i);
		else
		{
			int k=1;
			int m=a[i].c;
			while(k<m)
			{
				_01(i,k);
				m-=k;
				k*=2;
			}
			_01(i,m);
		}
	}
	cout<<c[t];
	return 0;
}
2021/4/6 14:06
加载中...