么看题目,搞了个最优解才发现不需要
查看原帖
么看题目,搞了个最优解才发现不需要
1336398
xprintiny楼主2024/4/12 17:30

没看清楚题目:老师只能买同一种包装 还以为所有包装买,然后求最优解。。 写了完了才发现,删了可惜,给自己留个记录。。 下面是不合题意的代码,买任意包装,最便宜的组合

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n;
	cin>>n;
	int a[3][2];
	for(int i=0;i<3;i++){
		cin>>a[i][0]>>a[i][1];
	}
	int money=0;
	while(n>0){//一次只买一组的暴力解法
		//判断最划算的一组 
		double score,m_score = 0;
		int t=0;//标记最划算组 
		for(int i=0;i<3;i++){
			score =  min(n,a[i][0])/(double)a[i][1];
			if(score>m_score){
				t=i;
				m_score = score;
			}
		}
		//购买
		n = n-a[t][0];
		money += a[t][1];
	}
	cout<<money;
	return 0;
}
2024/4/12 17:30
加载中...