题解 P1208 【[USACO1.3]混合牛奶 Mixing Milk】
其实根本没有一楼dalao描述的那么麻烦......
一楼dalao其实吧,采用了一种纯属模拟的方式。
下面是我的大跃进思想
但是一个个地做减法是不是太慢了?(大跃进思想)
于是我们是不是可以直接进行一个大跨步式的方法
你的奶我直接全都要了?
敲一个伪代码理解一下
while (当前需要奶量)
{
if (奶农的提供量<=现在的需求量)
{
现在的需求量-奶农的提供量
你的money-奶农的提供量*奶农的单价
换一个奶农//这个的提供量已经=0
}
else
{
你的money-剩余需求量*奶农的单价
需求量=0
}
}
然后这个算法的优势就是大跃进
让一个奶农不用分批次给你送牛奶(n--)
直接一步到位,多快好省
然后贴上高清打码的代码
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
typedef long long int lli;
lli n,m,sum;
struct nainong{
lli dj,num;
void input(){cin>>this->dj>>this->num;}
}milk[5001],*now=&milk[1];
bool cmp(const nainong &a,const nainong &b)
{
if (a.dj!=b.dj)return a.dj<b.dj;
else return a.num>b.num;
}
int main()
{
cin>>n>>m;
for (register int i=1;i<=m;i++)
{
milk[i].input();
}
sort(milk+1,milk+m+1,cmp);
while (n)//当任务还没有完成的时候
{
if (now->num<=n)//如果这个奶农产出的奶不够用
{
n-=now->num;//减掉这个奶农的产量(我全都要了qwq)
sum+=(now->dj)*(now->num);//加上这个奶农的要价
now++;//移动到下一个位置(or——奶农qwq)
}
else//奶农产出的奶量不足(任务即将完成)
{
sum+=(now->dj)*n;//买到最后的奶
n=0;//任务完成
}
}
cout<<sum;
return 0;
}
然后呢,看看两个代码之间的差距:

(十分建议@chen_zhe 数据加强卡一下,逃qwq)
题解 P1208 【[USACO1.3]混合牛奶 Mixing Milk】的更多相关文章
- P1208 [USACO1.3]混合牛奶 Mixing Milk
P1208 [USACO1.3]混合牛奶 Mixing Milk 题目描述 由于乳制品产业利润很低,所以降低原材料(牛奶)价格就变得十分重要.帮助Marry乳业找到最优的牛奶采购方案. Marry乳业 ...
- 洛谷——P1208 [USACO1.3]混合牛奶 Mixing Milk
P1208 [USACO1.3]混合牛奶 Mixing Milk 题目描述 由于乳制品产业利润很低,所以降低原材料(牛奶)价格就变得十分重要.帮助Marry乳业找到最优的牛奶采购方案. Marry乳业 ...
- 洛谷 P1208 [USACO1.3]混合牛奶 Mixing Milk
P1208 [USACO1.3]混合牛奶 Mixing Milk 题目描述 由于乳制品产业利润很低,所以降低原材料(牛奶)价格就变得十分重要.帮助Marry乳业找到最优的牛奶采购方案. Marry乳业 ...
- 洛谷P1208 [USACO1.3]混合牛奶 Mixing Milk【贪心+背包】
由于乳制品产业利润很低,所以降低原材料(牛奶)价格就变得十分重要.帮助Marry乳业找到最优的牛奶采购方案. Marry乳业从一些奶农手中采购牛奶,并且每一位奶农为乳制品加工企业提供的价格是不同的.此 ...
- 洛谷P1208 [USACO1.3]混合牛奶 Mixing Milk(贪心)
题目描述 由于乳制品产业利润很低,所以降低原材料(牛奶)价格就变得十分重要.帮助Marry乳业找到最优的牛奶采购方案. Marry乳业从一些奶农手中采购牛奶,并且每一位奶农为乳制品加工企业提供的价格是 ...
- P1208 [USACO1.3]混合牛奶 Mixing Milk(JAVA语言)
思路 按单价排序然后贪心 题目描述 由于乳制品产业利润很低,所以降低原材料(牛奶)价格就变得十分重要.帮助Marry乳业找到最优的牛奶采购方案. Marry乳业从一些奶农手中采购牛奶,并且每一位奶农为 ...
- Java实现 洛谷 P1208 [USACO1.3]混合牛奶 Mixing Milk
输入输出样例 输入 #1 100 5 5 20 9 40 3 10 8 80 6 30 输出 #1 630 import java.util.Arrays; import java.util.Scan ...
- USACO Training Section 1.3混合牛奶 Mixing Milk
题目描述 由于乳制品产业利润很低,所以降低原材料(牛奶)价格就变得十分重要.帮助Marry乳业找到最优的牛奶采购方案. Marry乳业从一些奶农手中采购牛奶,并且每一位奶农为乳制品加工企业提供的价格是 ...
- Mixing Milk 混合牛奶 USACO 贪心
1009: 1.3.1 Mixing Milk 混合牛奶 时间限制: 1 Sec 内存限制: 128 MB提交: 9 解决: 9[提交] [状态] [讨论版] [命题人:外部导入] 题目描述 1. ...
随机推荐
- ubuntu下安装pip install mysqlclient 报错 command "python setup.py egg_info" failed with error.....解决方案
我的环境: ubuntu 1604 版本, 在黑屏终端已经安装了django和virtualenv虚拟环境, 在创建了django的models后开始迁移的操作, 出现错误, 错误代码最后如题目 可以 ...
- pandas安装以及出现的问题
pandas安装以及出现的问题 1.pandas 安装 pandas是Python的第三方库,所以使用前需要安装一下,直接使用pip install pandas就会自动安装,安装成功后显示的以下的信 ...
- jmeter—操作数据库
添加JDBC Request,添加需要执行的sql语句 在这个界面需要配置Variabke Name,内容要与上表中的Name值相同:数据库的用户名.密码.URL.驱动这些基本信息要在这里配置:其他选 ...
- golang应用打包成docker镜像
golang编译的应用是不需要依赖其他运行环境的,那么为什么还需要打包成docker镜像呢?当需要附带配置和日志等文件时可以更方便的移植和运行,下面介绍从dockerfile编译成镜像. 在项目根目录 ...
- mkfs命令详解
mkfs命令-->make filesystem的缩写:用来在特定的分区建立Linux文件系统 [命令作用] 该命令用来在特定的分区创建linux文件系统,常见的文件系统有ext2,ex ...
- 移动设备检测类Mobile_Detect.php
移动设备检测类Mobile_Detect.php http://mobiledetect.net/ 分类:PHP 时间:2015年11月28日 Mobile_Detect.php是一个轻量级的开源移动 ...
- Notes of Daily Scrum Meeting(11.8)
Notes of Daily Scrum Meeting(11.8) 预备中开始写代码的第一天,因为大家对Android编程的熟悉程度还是不够,所以工程进行的非常缓慢,有四名队员 开始编写自己的任务, ...
- 2-Sixth Scrum Meeting20151206
任务分配 闫昊: 今日完成:请假.(最近代码写得多……很累……) 明日任务:完成数据库设计. 唐彬: 今日完成:ios客户端代码的深度学习. 明日任务:读IOS讨论区后台接口. 史烨轩: 今日完成:请 ...
- Linux 读书笔记 三 (第二章)
一.学习目标 1. 理解二进制在计算机中的重要地位 2. 掌握布尔运算在C语言中的应用 3. 理解有符号整数.无符号整数.浮点数的表示 4. 理解补码的重要性 5. 能避免C语言中溢出,数据类型转 ...
- Chapter 7 面向对象分析
面向对象的分析模型由功能模型.分析对象模型.动态模型三个独立的模型组成,从软件的需求功能来看分析类可以划分为实体类.边界类和控制类三种类型.识别分析类.控制类和实体类需要充分理解系统内部的行为.一个参 ...