开了O2只有30分,不开AC
查看原帖
开了O2只有30分,不开AC
378195
icaijy楼主2024/4/29 17:06

我不理解

#include <iostream>
using namespace std;
int f[105][105][2];//rmb rp
int rmb,rp,n;
struct mm{
	int rmb,rp,time;
}m[15];

int main(){
	cin >> n;
	for (int i=1;i<=n;i++) cin >> m[i].rmb >> m[i].rp >> m[i].time;
	cin >> rmb >> rp;
	for (int i=1;i<=n;i++){
		for (int j=rmb;j>=m[i].rmb;j--){
			for (int k=rp;k>=m[i].rp;k--){
				if (f[j][k][0]<f[j-m[i].rmb][k-m[i].rp][0]+1){
					//选 
					f[j][k][0]=f[j-m[i].rmb][k-m[i].rp][0]+1;
					f[j][k][1]=f[j-m[i].rmb][k-m[i].rp][1]+m[i].time;
				}
				if (f[j][k][0]==f[j-m[i].rmb][k-m[i].rp][0]+1){
					//看看能不能减小时间
					f[j][k][1]=min(f[j-m[i].rmb][k-m[i].rp][1]+m[i].time,f[j][k][1]);
				}
			}
		}
	}
	cout << f[rmb][rp][1];
	return 0;
}
2024/4/29 17:06
加载中...