题解 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. ...
随机推荐
- linux多项目分别使用不同jdk版本(tomcat版)
此操作只针对tomcat 背景:linux服务器普通用户默认版本为jdk6,jboss项目使用jdk6版本 ,但是tomcat需要使用jdk7.当然也可以分开使用不同账户来启用这两个项目,下面主要介绍 ...
- 【转】phpcms v9的ckeditor加入给内容调整行高
今天公司一客户要求一同事给ckeditor加入可以设置行高的功能(他后台是用织梦做的,他是织梦的FANS),我一时闲得慌,也想给咱家的v9加入这个功能,功夫不负有心啊,终于成功了,来给大家分享一下! ...
- golang--性能测试和分析
前言 测试分为:压力测试.负载测试.性能测试,功能测试等等,其中在开发过程中开发人员经常要写一些test case unit 自己的模块进行功能测试测和性能.在分析出模块的性能瓶颈后开发人员就需要针对 ...
- Java 快排 排序
一.快排的一种 ==================== public class myMain { public static void main(String[] args) { int t[] ...
- kali linux执行apt-get update失败(数字签名过期)
想要安装某个软件,执行apt-get update 失败,出现下面的错误: 自己查看了更新源是没有问题的,根据提示的错误google了一下,发现是数字签名过期了. 执行下面命令: apt-key ad ...
- [T-ARA][느낌 아니까][懂得那份感觉]
歌词来源:http://music.163.com/#/song?id=27808771 作曲 : 박덕상/박현중 [作曲 : p/bag-ddeog-ssang-/p/ba-Kyeon-c/jung ...
- [SimHash] the Hash-based Similarity Detection Algorithm
The current information explosion has resulted in an increasing number of applications that need to ...
- Scurm Meeting 11.2
成员 今日任务 明日计划 用时 徐越 写功能规格说明书,代码移植 创建数据库,代码移植 3h 赵庶宏 编写功能规格说明书,学习访问数据库代码,代码迁移 代码迁移 5h 武鑫 设计界面:独立完成一些简单 ...
- 20135313-exp1
北京电子科技学院(BESTI) 实 验 报 告 课程:Java程序设计 班级:1353 姓名:吴子怡 学号:20135313 成绩: 指导教师:娄嘉鹏 实 ...
- Task 10 统计从1到某个整数之间出现的1的次数
任务:给定一个十进制的正整数,写下从1开始,到N的所有整数,然后数一下其中出现“1”的个数. 要求: 写一个函数 f(N) ,返回1 到 N 之间出现的 “1”的个数.例如 f(12) = 5. 在3 ...