USACO——混合牛奶
来源:互联网 发布:华罗庚的优化法时间 编辑:程序博客网 时间:2024/05/16 17:53
洛谷 P1208 [USACO1.3]混合牛奶 Mixing Milk
题目描述
由于乳制品产业利润很低,所以降低原材料(牛奶)价格就变得十分重要。帮助Marry乳业找到最优的牛奶采购方案。
Marry乳业从一些奶农手中采购牛奶,并且每一位奶农为乳制品加工企业提供的价格是不同的。此外,就像每头奶牛每天只能挤出固定数量的奶,每位奶农每天能提供的牛奶数量是一定的。每天Marry乳业可以从奶农手中采购到小于或者等于奶农最大产量的整数数量的牛奶。
给出Marry乳业每天对牛奶的需求量,还有每位奶农提供的牛奶单价和产量。计算采购足够数量的牛奶所需的最小花费。
注:每天所有奶农的总产量大于Marry乳业的需求量。
分析
显而易见的经典“背包问题”(单价=重量,要求填满背包且重量最少)直接排序单价,从最小开始逐个收购即可
#include <iostream>#include <cstdio>using namespace std;int sum,n,a[5001][3],i,m;void qs(int l,int h){ int i=l,j=h,mid=a[(l+h)/2][1],t; do { while (a[i][1]<mid) i++; while (a[j][1]>mid) j--; if (i<=j) { t=a[i][1];a[i][1]=a[j][1];a[j][1]=t; t=a[i][2];a[i][2]=a[j][2];a[j][2]=t; i++;j--; } } while (i<=j); if (i<h) qs(i,h); if (j>l) qs(l,j);}int main(){ scanf("%d%d",&sum,&n); for (i=1;i<=n;i++) scanf("%d%d",&a[i][1],&a[i][2]); qs(1,n); i=0; m=0; while (sum!=0&i<=n) { i++; if (sum-a[i][2]>=0) { sum=sum-a[i][2]; m=m+a[i][2]*a[i][1]; } else { m=m+sum*a[i][1]; sum=0; } } printf("%d",m); return(0);}
0 0
- USACO——混合牛奶
- USACO——Mixing Milk 混合牛奶
- 洛谷 1028——[USACO 1.3]混合牛奶 Mixing Milk
- usaco混合牛奶
- USACO Section1.3 混合牛奶
- Mixing Milk---混合牛奶-USACO
- 【USACO】Mixing Milk 混合牛奶
- USACO 1.3 混合牛奶 (贪心)
- USACO——挤牛奶
- USACO——Milking Cows 挤牛奶
- USACO——Milking Cows 挤牛奶
- Usaco 1.3.1 混合牛奶(Mixing Milk)
- 【USACO题库】1.3.1 Mixing Milk混合牛奶
- 洛谷 P1208 USACO 1.3 混合牛奶 Mixing Milk
- SSL JudgeOnline 1099——USACO 1.4 母亲的牛奶
- 混合牛奶
- USACO 挤牛奶
- 寒假片11——[USACO1.3]混合牛奶 Mixing Milk
- apply和call要点总结
- 用 AsyncDisplayKit 開發響應式 iOS App
- 【maven】---初识
- APP微信支付后台内容小结
- 关于编码与乱码问题
- USACO——混合牛奶
- java字符编码问题
- 使用net.sf.json库进行json反序列化时存在的问题
- gulp+webpack工具整合简介
- 寒假篇36
- Spring+JDBC编程
- Apache与Tomcat 区别联系
- USACO——修理牛棚
- LeetCode 1. Two Sum java solution with HashMap