您的位置:首页 > 其它

usaco-1.3.1-Mixing Milk

2014-03-29 16:27 357 查看
题目很简单,这一节好像都是贪心算法的题目吧。以前刚开始做题目的适合贪心都觉得理解起来有那么点累,现在做起来感觉特别轻松,看来和以前比进步还是挺明显的。虽然前面的题目都比较简单,但是一定要踏踏实实的做题和记录。不能好高婺远。这一次说什么也要坚持把usaco的题目全部做完。

题目链接:http://cerberus.delos.com:790/usacoprob2?a=BjvFWp72xzP&S=milk

代码:

/*
ID:sunexio2
PROG:milk
LANG:C++
*/
#include <iostream>
#include <fstream>
#include <map>
#include <string>
#include <cmath>
#include <algorithm>
using namespace std;

ifstream fin("milk.in");
ofstream fout("milk.out");

struct pin{
int pri, amount;
}p[5500];

bool cmp(pin x, pin y){
return x.pri < y.pri;
}

int main(){
int n, m;
while(fin >> n >> m){
for(int i = 0; i < m; ++i)
fin >> p[i].pri >> p[i].amount;
sort(p, p + m, cmp);
int ans = 0;
int i = 0;
while(n){
if(n >= p[i].amount){
ans += p[i].pri * p[i].amount;
n -= p[i].amount;
}
else{
ans += n * p[i].pri;
n = 0;
}
++i;
}
fout << ans << endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: