其实根本没有一楼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)

最新文章

  1. 【MySQL】mysql workbench
  2. Bootstrap系列 -- 11. 基础表单
  3. [JavaEE] NIO与IO的区别
  4. jsonp 实现sso
  5. Jersey(1.19.1) - Client API, Testing services
  6. hdu-3046-Pleasant sheep and big big wolf(最大流最小割)
  7. jQuery三种事件绑定方式.bind(),.live(),.delegate()
  8. 【POJ2777】Count Color(线段树)
  9. 用户"IIS APPPOOL\xxxxxxxx"登录失败解决方案
  10. R语言笔记2--循环、R脚本
  11. 安装Sphere v2.7 遇到的问题
  12. go的变量redeclare的问题,golang的一个小坑
  13. 機器學習基石 (Machine Learning Foundations) 作业1 Q15-17的C++实现
  14. Java中的hashCode() 和 equals()的若干问题解答
  15. cmd远程连接oracle数据库
  16. ubuntu下chrome浏览器安装flash插件(pepperflashplugin-nonfree)
  17. Spring Boot 集成 Redis 实现缓存机制
  18. Python下HttpHTTPClient和AsyncHTTPClient
  19. andorid 计算器
  20. EF 通过修改模版 更改生成实体名称

热门文章

  1. Web层框架对网站中所有异常的统一处理
  2. Redis之数据类型大全
  3. 微信小程序中的 web-view 组件
  4. android 判断应用是否在前台显示
  5. 180807-Quick-Task 动态脚本支持框架之Groovy脚本加载执行
  6. 004 --Mysql中的锁的问题
  7. Netty源码分析第4章(pipeline)----&gt;第3节: handler的删除
  8. Flink架构分析之RPC详解
  9. Sony深度学习框架 - Neural Network Console - 教程(1)- 原来深度学习可以如此简单
  10. Webstorm使用时发生Page &#39;http://localhost:63340/n…tok/css/bootstrap.css.map&#39; requested without authorization, you can copy URL and open it in browser to trust it.