01背包 80分求调
查看原帖
01背包 80分求调
772945
Polarie楼主2023/8/14 16:24
#include<bits/stdc++.h>
using namespace std;
struct Stu {
	int t,f,h;
} a[100+10];
int d[100+10];
bool cmp(const Stu &a,const Stu b) {
	return a.t<b.t;
}
int main() {
	int D,g;
	cin>>D>>g;
	for(int i=1; i<=g; i++) {
		cin>>a[i].t>>a[i].f>>a[i].h;
	}
	sort(a+1,a+g+1,cmp);
	d[0]=10;
	for(int i=1; i<=g; i++) {
		for(int j=D; j>=0; j--) {
			if(d[j]>=a[i].t) {
				if(j+a[i].h>=D) {
					cout<<a[i].t;
					return 0;
				}
				d[j]+=a[i].f;
			}
			if(j>=a[i].h&&d[j-a[i].h]>=a[i].t){
				if(j>=D) {
					cout<<a[i].t;
					return 0;
				}
				d[j]=d[j-a[i].h];
			}
		}
	}
	cout<<d[0];
	return 0;
}


2023/8/14 16:24
加载中...