求助
查看原帖
求助
694866
yj768988楼主2025/1/20 14:12
#include <bits/stdc++.h>
using namespace std;
struct stu{
	long long ti,v;
}a[41];
const long long S=20000;
bool cmp(stu x,stu y){
	return x.v*y.ti>y.v*x.ti;
}
int main(){
	srand(time(0));
	long long t,m,i,j,mx=0,time,vs;
	cin>>m>>t;
	for(i=0;i<m;i++){
		cin>>a[i].ti;
		a[i].v=a[i].ti;
	}
	sort(a,a+m,cmp);
	for(i=0;i<m*S;i++){
		time=t,vs=0;
		for(j=0;j<m;j++)if(rand()%(m-j+1)&&a[j].ti<=time)time-=a[j].ti,vs+=a[j].v;
		mx=max(mx,vs);
	}
	cout<<mx<<endl;
	return 0;
}

wa 在了 15pts

2025/1/20 14:12
加载中...