题意:奶牛们收购了一家世界著名的酸奶工厂Yucky Yogurt. 在接下来的 N (1 <= N <= 10,000) 周,牛奶和人工的价格每周会波动,以致于第i周需要花公司 C_i (1 <= C_i <= 5,000) 美分来生产一个单位的酸奶. 
Yucky Yogurt 拥有一个仓库,可以以S (1 <= S <= 100)美分每单位每周的价格储存没用的酸奶。酸奶不会变质,而且仓库足够大。
Yucky Yogurt每周要交货 Y_i (0 <= Y_i <= 10,000) 单位的酸奶给它的客户。输出最少的费用。

题解:每次都取局部最优解,然后将所有的最小值相加,就是整体的最小值。

贪心思路:利用dp得到每周的最小值,dp[i]为第i周的最小值,因为最小值的来源是min(dp[i-1]+S,C[i])

为什么不可能是C[i-2]+2S:因为dp[i-1]<=C[i-2]+S,所以dp[i]<=dp[i-1]+S<=C[i-2]+2S,其余情况同理排除


#include<stdio.h>
#include<algorithm>
#include<iostream>
using namespace std;
typedef long long ll;
ll C[], Y[];
ll dp[];
int main(void)
{
ios::sync_with_stdio(false);
int N, S;
cin >> N >> S;
for (int i = ; i <= N; i++)
cin >> C[i] >> Y[i];
dp[] = C[];
ll sum = dp[]*Y[];
for (int i = ; i <= N; i++)
{
dp[i] = min(C[i], dp[i - ] + S);
sum += dp[i] * Y[i];
}
cout << sum << endl;
return ;
}

最新文章

  1. 从零开始学 Java - Windows 下安装 Tomcat
  2. Python的hasattr() getattr() setattr() 函数使用方法详解
  3. 【经验之谈】前端面试知识点总结(HTML相关)——附答案
  4. Shell 编程基础之基本语法结构汇总
  5. odoo.cli.main()指的是哪里?OpenERP的第二根线头儿
  6. &lt;译&gt;Selenium Python Bindings 5 - Waits
  7. SQL Server中使用convert进行日期转换
  8. 如何把Excel另存为XML格式文件(快速转换)
  9. 【好程序员笔记分享】——Cocoapods集成
  10. 201521123110 《Java程序设计》第7周学习总结
  11. JS模块化开发----require.js
  12. vue刷新路由,不刷新页面
  13. 聚类——KFCM
  14. MVC和Web API 过滤器Filter
  15. 理解for循环
  16. Git 常用使用技巧
  17. 集合 enum 枚举 简介 案例 MD
  18. CentOS扩展库配置
  19. 4.2 event
  20. Spring Boot与Logback的运用(自定义异常+AOP)

热门文章

  1. mybatis技术总结
  2. 为什么zookeeper的节点配置的个数必须是奇数个
  3. 第二个hibernate Annotation版本的helloworld
  4. 网络编程-Netty-Reactor模型
  5. MySQL数据库字符集和排序规则的四个级别
  6. [转载]java内存工具VisualVM的简单使用以及与Idea集成
  7. Tensorflow从0到1(4)之神经网络
  8. Arduino控制超声波检测与0.96OLED及串口显示
  9. AsyncOperation和SceneManager.LoadSceneAsync协同加载场景
  10. 【解读】Http协议