博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
usaco problem76:mixing milk解题报告
阅读量:4205 次
发布时间:2019-05-26

本文共 1000 字,大约阅读时间需要 3 分钟。

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

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;

}

转载地址:http://stxli.baihongyu.com/

你可能感兴趣的文章
POJ 2536 解题报告
查看>>
POJ 1154 解题报告
查看>>
POJ 1661 解题报告
查看>>
POJ 1101 解题报告
查看>>
ACM POJ catalogues[转载]
查看>>
ACM经历总结[转载]
查看>>
C/C++文件操作[转载]
查看>>
专业计划
查看>>
小米笔试:最大子数组乘积
查看>>
常见的排序算法
查看>>
5.PyTorch实现逻辑回归(二分类)
查看>>
6.PyTorch实现逻辑回归(多分类)
查看>>
8.Pytorch实现5层全连接结构的MNIST(手写数字识别)
查看>>
9.PyTorch实现MNIST(手写数字识别)(2卷积1全连接)
查看>>
hdu 3460 Ancient Printer(trie tree)
查看>>
中间数
查看>>
KMP求前缀函数(next数组)
查看>>
KMP
查看>>
poj 3863Business Center
查看>>
Android编译系统简要介绍和学习计划
查看>>