您的位置:首页 > 其它

HDU 2111 Saving HDU

2011-04-20 17:46 369 查看
明显的贪心

#include <stdio.h>
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
struct BaoBei{
int p, m;
double val;
};

bool cmp(const BaoBei &a, const BaoBei &b){
return a.p > b.p;    // >号 降序排序
}
int main(){
int v, n;
vector<BaoBei> vec;
while( cin >> v, v ){
cin >> n;
vec.clear();
BaoBei tmp;
for(int i = 0; i < n; ++i){
cin >> tmp.p >> tmp.m;
vec.push_back(tmp);
}
sort(vec.begin(), vec.end(), cmp);
int ans = 0;
for(int i = 0; i < n; ++i){
if(v <= 0){
break;
} else {
if( vec[i].m <= v ){
ans += vec[i].p * vec[i].m;
v -= vec[i].m;
} else {
ans += v * vec[i].p;
v -= v;
}
}
}
cout << ans << endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: