【USACO 1.3.1】混合牛奶

【题目描述】


由于乳制品产业利润很低,所以降低原材料(牛奶)价格就变得十分重要。帮助梅丽乳业找到最优的牛奶采购方案。

梅丽乳业从一些奶农手中采购牛奶,并且每一位奶农为乳制品加工企业提供的价格是不同的。此外,就像每头奶牛每天只能挤出固定数量的奶,每位奶农每天能提供的牛奶数量是一定的。每天梅丽乳业可以从奶农手中采购到小于或者等于奶农最大产量的整数数量的牛奶。

给出梅丽乳业每天对牛奶的需求量,还有每位奶农提供的牛奶单价和产量。计算采购足够数量的牛奶所需的最小花费。

注:每天所有奶农的总产量大于梅丽乳业的需求量。

【格式】

INPUT FORMAT:file milk.in

第 1 行共二个数值:N,(0<=N<=2,000,000)是需要牛奶的总数;M,(0<=
M<=5,000)是提供牛奶的农民个数。

第 2 到 M+1 行:每行二个整数:Pi 和 Ai。

Pi(0<= Pi<=1,000) 是农民 i 的牛奶的价格。

Ai(0 <= Ai <= 2,000,000)是农民 i
一天能卖给Marry的牛奶制造公司的牛奶数量。

OUTPUT FORMAT:file milk.out

单独的一行包含单独的一个整数,表示Marry的牛奶制造公司拿到所需的牛奶所要的最小费用

【分析】

部分背包,直接贪心。


 1 #include <cstdlib>
2 #include <iostream>
3 #include <cstdio>
4 #include <cmath>
5 #include <cstring>
6 #include <algorithm>
7 const int maxm=5005;
8 using namespace std;
9 struct nn
10 {
11 int price;//价格
12 int num;//数量
13 bool operator <(const nn &b)const
14 {
15 return price<b.price;
16 }
17 }data[maxm];
18 int main()
19 {
20 int n,m,i;
21 //文件操作
22 freopen("milk.in","r",stdin);
23 freopen("milk.out","w",stdout);
24 scanf("%d%d",&n,&m);
25 for (i=1;i<=m;i++) scanf("%d%d",&data[i].price,&data[i].num);
26 sort(data+1,data+1+m);//排序
27 int cnt=0,ans=0,point=1;
28 while (cnt<n)
29 {
30 ans+=data[point].price*data[point].num;
31 cnt+=data[point].num;
32 point++;
33 }
34 point--;
35 printf("%d",ans-(cnt-n)*data[point].price);
36 return 0;
37 }

时间: 2024-10-24 11:18:40

【USACO 1.3.1】混合牛奶的相关文章

Luogu P1208 [USACO1.3]混合牛奶 Mixing Milk(贪心)

P1208 [USACO1.3]混合牛奶 Mixing Milk 题目描述 由于乳制品产业利润很低,所以降低原材料(牛奶)价格就变得十分重要.帮助Marry乳业找到最优的牛奶采购方案. Marry乳业从一些奶农手中采购牛奶,并且每一位奶农为乳制品加工企业提供的价格是不同的.此外,就像每头奶牛每天只能挤出固定数量的奶,每位奶农每天能提供的牛奶数量是一定的.每天Marry乳业可以从奶农手中采购到小于或者等于奶农最大产量的整数数量的牛奶. 给出Marry乳业每天对牛奶的需求量,还有每位奶农提供的牛奶单

【USACO】混合牛奶

题目描述 牛奶包装是一个如此低利润的生意,所以尽可能低的控制初级产品(牛奶)的价格变的十分重要.请帮助Marry的牛奶制造公司(Merry Milk Makers')以可能的最廉价的方式取得他们所需的牛奶.Marry的牛奶制造公司从一些农民那购买牛奶,每个农民卖给牛奶制造公司的价格不一定相同.而且,如一只母牛一天只能生产一定量的牛奶,农民每一天只有一定量的牛奶可以卖.每天,Marry的牛奶制造公司从每个农民那购买一定量的牛奶,少于或等于农民所能提供的最大值.给出Marry牛奶制造公司的每日的牛奶

CODE[VS] 1621 混合牛奶 USACO

题目描述 Description 牛奶包装是一个如此低利润的生意,所以尽可能低的控制初级产品(牛奶)的价格变的十分重要.请帮助快乐的牛奶制造者(Merry Milk Makers)以可能的最廉价的方式取得他们所需的牛奶.快乐的牛奶制造公司从一些农民那购买牛奶,每个农民卖给牛奶制造公司的价格不一定相同.而且,如一只母牛一天只能生产一定量的牛奶,农民每一天只有一定量的牛奶可以卖.每天,快乐的牛奶制造者从每个农民那购买一定量的牛奶,少于或等于农民所能提供的最大值.给出快乐牛奶制造者的每日的牛奶需求,连

洛谷 P1208 [USACO1.3]混合牛奶 Mixing Milk

题目描述 由于乳制品产业利润很低,所以降低原材料(牛奶)价格就变得十分重要.帮助Marry乳业找到最优的牛奶采购方案. Marry乳业从一些奶农手中采购牛奶,并且每一位奶农为乳制品加工企业提供的价格是不同的.此外,就像每头奶牛每天只能挤出固定数量的奶,每位奶农每天能提供的牛奶数量是一定的.每天Marry乳业可以从奶农手中采购到小于或者等于奶农最大产量的整数数量的牛奶. 给出Marry乳业每天对牛奶的需求量,还有每位奶农提供的牛奶单价和产量.计算采购足够数量的牛奶所需的最小花费. 注:每天所有奶农

洛谷——P1208 [USACO1.3]混合牛奶 Mixing Milk

https://www.luogu.org/problem/show?pid=1208 题目描述 由于乳制品产业利润很低,所以降低原材料(牛奶)价格就变得十分重要.帮助Marry乳业找到最优的牛奶采购方案. Marry乳业从一些奶农手中采购牛奶,并且每一位奶农为乳制品加工企业提供的价格是不同的.此外,就像每头奶牛每天只能挤出固定数量的奶,每位奶农每天能提供的牛奶数量是一定的.每天Marry乳业可以从奶农手中采购到小于或者等于奶农最大产量的整数数量的牛奶. 给出Marry乳业每天对牛奶的需求量,还

luogu P1208 混合牛奶 贪心

1 //于其说是一道贪心题,不如说是一道考察结构体运用的题目.对于重载运算符一定要熟练运用. 我们优先购买便宜的牛奶即可,注意使用min函数节约代码量. 2 #include<cmath> 3 #include<cstdio> 4 #include<algorithm> 5 using namespace std; 6 int n,m,ans; 7 struct node 8 { 9 int a,b;//牛奶单价和产量 10 friend bool operator &

7、8月刷题总结

准备开学了囧,7.8月刷题记录,以后好来复习,并且还要好好总结! 数据结构: splay: [BZOJ]1503: [NOI2004]郁闷的出纳员(Splay) [BZOJ]1269: [AHOI2006]文本编辑器editor(Splay) [BZOJ]1507: [NOI2003]Editor(Splay) treap: [BZOJ]1862: [Zjoi2006]GameZ游戏排名系统 & 1056: [HAOI2008]排名系统(treap+非常小心) [BZOJ]3224: Tyvj

大神刷题表

9月27日 后缀数组:[wikioi3160]最长公共子串 dp:NOIP2001统计单词个数 后缀自动机:[spoj1812]Longest Common Substring II [wikioi3160]最长公共子串 [spoj7258]Lexicographical Substring Search 扫描线+set:[poj2932]Coneology 扫描线+set+树上删边游戏:[FJOI2013]圆形游戏 结论:[bzoj3706][FJ2014集训]反色刷 最小环:[poj1734

【USACO 1.2.1】挤牛奶

[问题描述] 三个农民每天清晨5点起床,然后去牛棚给3头牛挤奶.第一个农民在300时刻(从5点开始计时,秒为单位)给他的牛挤奶,一直到1000时刻.第二个农民在700时刻开始,在 1200时刻结束.第三个农民在1500时刻开始2100时刻结束.期间最长的至少有一个农民在挤奶的连续时间为900秒(从300时刻到1200时刻),而最长的无人挤奶的连续时间(从挤奶开始一直到挤奶结束)为300时刻(从1200时刻到1500时刻). 你的任务是编一个程序,读入一个有N个农民(1 <= N <= 5000