USACO Section1.3 Mixing Milk 解题报告
milk解题报告 —— icedream61 博客园(转载请注明出处)
------------------------------------------------------------------------------------------------------------------------------------------------
【题目】
我是牛奶制造商,我一天需要N加仑的牛奶,总共有M个农民可以供给我。
这M个农民的信息共M行,第i个农民有num[i]加仑牛奶,每加仑价格为price[i]。
求我买够牛奶所需的最少钱数。
数据保证,农民生产的牛奶总数一定是够的。
【数据范围】
0<=N<=2,000,000
0<=M<=5,000
0<=price[i]<=1,000
0<=num[i]<=2,000,000
【输入样例】
100 5
5 20
9 40
3 10
8 80
6 30
【输出样例】
630
------------------------------------------------------------------------------------------------------------------------------------------------
【分析】
排序一下,贪心即可。
------------------------------------------------------------------------------------------------------------------------------------------------
【总结】
一遍AC。
顺带复习了下类的运算符号重载。
------------------------------------------------------------------------------------------------------------------------------------------------
【代码】
/*
ID: icedrea1
PROB: milk
LANG: C++
*/ #include <iostream>
#include <fstream>
using namespace std; const int maxn = ;
const int maxm = ; struct Farmer
{
int price;
int num;
friend bool operator<(Farmer const &x,Farmer const &y) { return x.price<y.price; }
}; int N,M;
Farmer F[+maxm]; void qsort(int l,int r)
{
if(l>=r) return;
int i=l,j=r;
Farmer x=F[(l+r)>>];
while(true)
{
while(F[i]<x) ++i;
while(x<F[j]) --j;
if(i>j) break;
swap(F[i],F[j]);
++i; --j;
}
qsort(l,j); qsort(i,r);
} int main()
{
ifstream in("milk.in");
ofstream out("milk.out"); in>>N>>M;
for(int i=;i<=M;++i) in>>F[i].price>>F[i].num; qsort(,M); int cost=;
for(int i=;N && i<=M;++i)
{
int num=min(N,F[i].num);
N-=num; cost+=F[i].price*num;
}
out<<cost<<endl; in.close();
out.close();
return ;
}
USACO Section1.3 Mixing Milk 解题报告的更多相关文章
- USACO Section1.5 Prime Palindromes 解题报告
pprime解题报告 —— icedream61 博客园(转载请注明出处)--------------------------------------------------------------- ...
- USACO Section1.5 Superprime Rib 解题报告
sprime解题报告 —— icedream61 博客园(转载请注明出处)--------------------------------------------------------------- ...
- USACO Section1.5 Number Triangles 解题报告
numtri解题报告 —— icedream61 博客园(转载请注明出处)--------------------------------------------------------------- ...
- USACO Section1.4 Arithmetic Progressions 解题报告
ariprog解题报告 —— icedream61 博客园(转载请注明出处)-------------------------------------------------------------- ...
- USACO Section1.3 Combination Lock 解题报告
combo解题报告 —— icedream61 博客园(转载请注明出处)---------------------------------------------------------------- ...
- USACO Section1.3 Prime Cryptarithm 解题报告
crypt1解题报告 —— icedream61 博客园(转载请注明出处)--------------------------------------------------------------- ...
- USACO Section1.3 Barn Repair 解题报告
barn1解题报告 —— icedream61 博客园(转载请注明出处)---------------------------------------------------------------- ...
- USACO Section1.2 Palindromic Squares 解题报告
palsquare解题报告 —— icedream61 博客园(转载请注明出处)------------------------------------------------------------ ...
- USACO Section1.2 Dual Palindromes 解题报告
dualpal解题报告 —— icedream61 博客园(转载请注明出处)-------------------------------------------------------------- ...
随机推荐
- .net core 操作域控 活动目录 ladp -- Support for System.DirectoryServices for Windows
原文链接:https://github.com/dotnet/corefx/issues/2089 1. @ianhays to kick start the project in CoreFX re ...
- 如何下载YouTube 8K视频
随着科技的进步,人们对高清视频的要求越来越高,因此视频的分辨率也越来越高.从最开始的720P,到1080P,再到2K,进而到如今4K,不断地满足人们挑剔的胃口.4K分辨率的视频已经逐渐进入人们的生活中 ...
- leetcode: 字符串
1. palindrome-partitioning Given a string s, partition s such that every substring of the partition ...
- MySQL数据库实验五:数据更新
实验五 数据更新 一.实验目的 掌握数据更新操作的用法. 二.实验环境 三.实验示例 1.往基本表SC中插入元组. ① INSERT INTO S(S#,SNAME,AGE,SEX) VA ...
- Sublime插件支持Sass编译和Babel解析ES6 & .sublime-build文件初探(转载自imwtr)
原文请看:http://www.cnblogs.com/imwtr/p/6010550.html 用Sublime Text蛮久了,配置配来配去的,每次换电脑都得重头再配过,奈何人老了脑子不中用了 ...
- CRUD全栈式编程概述
业务场景 CRUD,从数据驱动的角度几乎所有的的业务都是在做这样的事情. 几乎所有的操作都是在做对表的增删改查. 假设我们将数据库数据规个类: 分为基础/配置数据和业务/增长数据,或者说静态数据 ...
- mysql索引和正确使用方式
一.索引类型 B树索引:大部分都是,因此B树的特性限制了索引如何使用:必须看看索引的正确使用限制(含组合索引的限制)http://blog.csdn.net/lovemdx/article/detai ...
- hdu-2844&&POJ-1742 Coins---多重背包
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2844 题目大意: Tony想要买一个东西,他只有n中硬币每种硬币的面值为a[i]每种硬币的数量为c[ ...
- data-ng-app 指令
1.data-ng-app指令定义了一个AngularJS应用程序的根元素. 2.data-ng-app会在页面加载完毕后自动进行初始化应用程序. 3.data-ng-app可以通过一个值连接到代码模 ...
- Eclipse 修改默认工作空间
第一次启动Eclipse时会弹出对话框,让你进行Workspace Launcher,也就是设置Eclipse的项目存放路径.但是,当你勾选“Use this as the default and d ...