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 ;
}

最新文章

  1. Vue.js 2.0 和 React、Augular等其他框架的全方位对比
  2. AngularJs之四
  3. python基础-软件目录结构规范
  4. IP变化,SVN和数据库的修改
  5. (转)POJ题目分类
  6. 访问WEB-INFO 目录注意事项
  7. C# 使用AutoResetEvent进行线程同步
  8. python解决汉诺塔问题
  9. 关于Weblogic连接池的TestConnectionOnReserve
  10. nyoj 222 整数中的1个数以及这类问题
  11. 转:ProGuard 常见命令备份
  12. MVC3+EF4.1学习系列(九)-----EF4.1其他的一些技巧的使用
  13. opencv轮廓处理函数详细
  14. Mongodb 3 查询优化(语句优化、建索引)
  15. nginx 负载 问题
  16. (惊艳)hashmap的理解(映射)
  17. JVM总结-invokedynamic
  18. SqlServer把日期转换成不同格式的字符串的函数大全
  19. 2018.07.08 NOIP模拟 好数(线段树)
  20. mariadb(mysql)从库relaylog损坏无法同步的处理方法

热门文章

  1. 关于安卓手机访问一些网站或者Fiori应用弹出安装证书的提示
  2. 【转】Android tools:context
  3. 洛谷题解:P1209 【[USACO1.3]修理牛棚 Barn Repair】
  4. UVa新汉诺塔问题(A Different Task,Uva 10795)
  5. MongoDB模糊查询
  6. H5之audio标签放音兼容所有浏览器方法
  7. 【HTML】placeholder中换行
  8. static作用域
  9. Visual Stutio 2015激活密钥
  10. 裸机——Nand