usaco problem76:mixing milk解题报告

来源:互联网 发布:淘宝如何只退款不退货 编辑:程序博客网 时间:2024/04/27 22:22

这道题很简单的贪心算法,写到这里只是为了总结一下

C++ 中map可以简单地实现排序和联系两组数

这里唯一值得注意的地方是map.insert()这个方法在key已存在的情况下并不插入,所以得看一下返回值,如果插入失败,就更改key所关联的值。

/*

ID:thestor1

PROG:milk

LANG:C++

*/

 

#include <iostream>

#include <fstream>

//#include <utility>

#include <map>

using namespace std;

 

int main()

{

ifstream is("milk.in");

int N,M;

is>>N>>M;

map<int,int> milk;

for(int ix=0;ix<M;++ix)

{

int price,amount;

is>>price>>amount;

pair<map<int,int>::iterator,bool> ret=milk.insert(make_pair(price,amount));

if(!ret.second)

ret.first->second+=amount;

}

is.close();

//ofstream save("save.txt");

//for(map<int,int>::iterator iter=milk.begin();iter!=milk.end();++iter)

//{

//save<<iter->first<<"  "<<iter->second<<endl;

//}

//save.close();

 

int tPrice=0,tAmount=0;

map<int,int>::iterator iter=milk.begin();

while(tAmount<N)

{

if(N-tAmount>iter->second)

{

tPrice+=iter->first*iter->second;

tAmount+=iter->second;

}

else

{

tPrice+=iter->first*(N-tAmount);

tAmount=N;

}

++iter;

}

ofstream os("milk.out");

os<<tPrice<<endl;

os.close();

return 0;

}

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 沙袋吸盘吸不住怎么办 电视购物不退货怎么办 母亲相信电视购物怎么办 中关村商城会买到假货怎么办 年休 科室主任不同意怎么办 怡成血糖仪不准怎么办 电子血压仪不准怎么办 学java没思路怎么办 安逸花评分不足怎么办 环保投诉不管用怎么办 乐购超市会员卡怎么办 易购225冻结金额怎么办 麻将机不洗牌了怎么办 麻将桌升不起来怎么办 公司宣布破产债务怎么办 一元乐购被骗怎么办 车被墙外皮砸了怎么办 win10安全中心打不开怎么办 导航出现001错误怎么办 车导航代码错误怎么办 买了假化妆品怎么办 发物流没有单号怎么办 天添网密码忘了怎么办 新华书香卡过期怎么办 车险断了一年怎么办 天添新倒闭捷信怎么办 建行diy信用卡怎么办卡 奥体 游泳卡过期怎么办 次卡过期了怎么办 该插件不受支持怎么办 信用卡申请找不到住址怎么办 中信信用卡白户怎么办 空调外铜管裸露怎么办 空调铜管露出来怎么办 小米分期后退货怎么办 家电生意难做怎么办 冰箱玻璃有水珠怎么办 买了病猫怎么办 网上卖宠物怎么办营业执照 蹲便池底座漏水怎么办 coach五金掉漆怎么办