社区讨论

01背包 80分求调

P1156垃圾陷阱参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@lo1uufg3
此快照首次捕获于
2023/10/23 03:21
2 年前
此快照最后确认于
2023/11/03 03:52
2 年前
查看原帖
CPP
#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;
}


回复

0 条回复,欢迎继续交流。

正在加载回复...