题解 P1208 【[USACO1.3]混合牛奶 Mixing Milk】
2024-09-18 01:06:47
其实根本没有一楼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)
最新文章
- 【MySQL】mysql workbench
- Bootstrap系列 -- 11. 基础表单
- [JavaEE] NIO与IO的区别
- jsonp 实现sso
- Jersey(1.19.1) - Client API, Testing services
- hdu-3046-Pleasant sheep and big big wolf(最大流最小割)
- jQuery三种事件绑定方式.bind(),.live(),.delegate()
- 【POJ2777】Count Color(线段树)
- 用户"IIS APPPOOL\xxxxxxxx"登录失败解决方案
- R语言笔记2--循环、R脚本
- 安装Sphere v2.7 遇到的问题
- go的变量redeclare的问题,golang的一个小坑
- 機器學習基石 (Machine Learning Foundations) 作业1 Q15-17的C++实现
- Java中的hashCode() 和 equals()的若干问题解答
- cmd远程连接oracle数据库
- ubuntu下chrome浏览器安装flash插件(pepperflashplugin-nonfree)
- Spring Boot 集成 Redis 实现缓存机制
- Python下HttpHTTPClient和AsyncHTTPClient
- andorid 计算器
- EF 通过修改模版 更改生成实体名称
热门文章
- Web层框架对网站中所有异常的统一处理
- Redis之数据类型大全
- 微信小程序中的 web-view 组件
- android 判断应用是否在前台显示
- 180807-Quick-Task 动态脚本支持框架之Groovy脚本加载执行
- 004 --Mysql中的锁的问题
- Netty源码分析第4章(pipeline)---->;第3节: handler的删除
- Flink架构分析之RPC详解
- Sony深度学习框架 - Neural Network Console - 教程(1)- 原来深度学习可以如此简单
- 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.