题意:有一定的钱,有一些“电脑配件”,要求在钱数内每种配件用一次,组装出性能最高的电脑,电脑的性能为所有配件中质量最小的。求出性能。
//最小值最大问题
#include<cstdio>
#include<iostream>
#include<map>
#include<string>
#include<vector>
using namespace std;
const int maxn=1000+5;
int n,b,maxq;
int cnt;//记录种类
struct node{
int p,q;
};
map<string,int> id;//求出名称对应的位置
vector<node> comp[maxn];//存储价格和品质
int ID(string type){
if(id.count(type)==0) id[type]=cnt++;
return id[type];
}
bool ok(int q){
int sum=0;
for(int i=0;i<cnt;i++){
int Size=comp[i].size(),cheapest=b+1;
for(int j=0;j<Size;j++)
if(comp[i][j].q>=q) cheap