创客更新装备

时间限制: 1 Sec  内存限制: 128 MB

题目描述

创客的装备有点老旧啦,所以老师想给创客更新装备。

每个显示屏都有它的固有属性——刷新频率 T 和价格 S。

现在有 N 台显示屏可供选择,老师想购置 3 台新的显示屏放在创客。

老师对于购买显示屏的要求是:

1.对 N 台显示屏按照输入顺序标号为1,2,3 ... N。

2.对于购买的3个显示屏的编号 i < j < k 需要满足 Ti < Tj < Tk。

3.需要购买的显示屏总价格最小。

你能算出购买到符合老师要求的 3 台显示屏最少需要多少钱吗?

输入

输入包括多组测试样例。

对于每组测试样例:

第一行输入一个正整数 N ,表示有 N 台显示屏可供选择。(1 <= N <= 3000)。

第二行输入 N 个正整数,第 i 个数字表示第 i 台显示屏的刷新频率 Ti。(1 <= Ti <= 109)

第三行输入 N 个正整数,第 i 个数字表示第 i 台显示屏的价格 Si。(1 <= Si <= 108)

输出

对于每组测试样例输出占一行,输出结果为可花费的最小价格。

如果无法购买到合适的 3 台显示屏,输出 -1。

样例输入

5
2 4 5 4 10
40 30 20 10 40
3
100 101 100
2 4 5
10
1 2 3 4 5 6 7 8 9 10
10 13 11 14 15 12 13 13 18 13

样例输出

90
-1
33

提示

在第一个示例中,您可以选择第 1,第 4 和第 5 台显示屏,因为 T1 < T4 <  T5,( 2 < 4 < 10),价格是 40 + 10 + 40 = 90。 
在第二个示例中,没有办法购置 3 台合适的显示屏,因此答案为 -1。

//dp[0][i]表示以第i台电脑为结尾,买1台电脑的花费
//dp[1][i]表示以第i台电脑为结尾,买2台电脑的花费
//dp[2][i]表示以第i台电脑为结尾,买3台电脑的花费
#include<iostream>
#include<cstdio>
using namespace std;
#define INF 0x3fffffff
const int maxn = 1005;
int t[maxn];//每台电脑的频率
int dp[4][maxn];
int main()
{int n;while(scanf("%d",&n) != EOF){for(int i = 0;i < 4; i++){fill(dp[i],dp[i] + maxn, INF);}for(int i = 1;i <= n; i++){scanf("%d",&t[i]);}for(int i = 1;i <= n; i++){scanf("%d",&dp[0][i]);}for(int i = 0;i < 3; i++){//已枚举经购买电脑的个数for(int j = i;j <= n; j++){for(int k = 1;k <= j; k++){if(t[j] > t[k])dp[i][j] = min(dp[i][j],dp[i - 1][k] + dp[0][j]);}}}int Min = INF;for(int i = 3;i <= n; i++){//因为要买三台电脑,所以i从3开始Min = min(Min,dp[2][i]);//dp[2][i]表示以第i台为结尾,买三台电脑的最小花费}if(Min == INF) printf("-1\n");else printf("%d\n",Min);}return 0;
}

创客更新装备 动态规划相关推荐

  1. 倩女幽魂服务器维修,《倩女幽魂2》2014年5月8日维护更新公告

    亲爱的<倩女幽魂2 Online>玩家: 为了保证服务器的运行稳定和服务质量,<倩女幽魂2 Online>将于2014年5月8日8:00停机进行维护工作,预计维护时间为120分 ...

  2. 浅谈我对动态规划的一点理解---大家准备好小板凳,我要开始吹牛皮了~~~

    前言 作为一个退役狗跟大家扯这些东西,感觉确实有点...但是,针对网上没有一篇文章能够很详细的把动态规划问题说明的很清楚,我决定还是拿出我的全部家当,来跟大家分享我对动态规划的理解,我会尽可能的把所遇 ...

  3. 动态规划问题思想及算法

    基本思想 若要解一个给定问题,我们需要解其不同部分(即子问题),再合并子问题的解以得出原问题的解. 通常许多子问题非常相似,为此动态规划法试图仅仅解决每个子问题一次,从而减少计算量: 一旦某个给定子问 ...

  4. RPG游戏《黑暗之光》流程介绍与代码分析之(八):装备系统的实现

    第八章 装备系统 装备系统是提升角色属性的重要系统,本篇博客重点实现装备系统UI的设计以及装备栏与物品栏的交互. 8.1 基础界面的设计 导入装备UI的模型,命名为Equipment,并添加5个方框, ...

  5. 强化学习4——无模型预测(蒙特卡洛法和TD法)

    文章目录 强化学习--无模型预测与控制 无模型的概念 无模型预测 蒙特卡洛法 基本蒙特卡洛 改进增量MC更新算法 动态规划(DP)与蒙特卡洛(MC)的区别 Temporal Difference(TD ...

  6. 大规模神经网络最新文献综述:训练高效DNN、节省内存使用、优化器设计

    ©作者 | Julia Gusak等 编辑 | 杜伟.泽南 来源 | 机器之心 在本综述论文中,研究者解释了不同技术的工作原理.评估和比较,还分析了一些实现这些技术的框架. 现代深度学习和人工智能技术 ...

  7. 骑马与砍杀python代码_GitHub - yunwei1237/scottish-fold: 一个关于骑马与砍杀的剧本制作工具...

    scottish-fold 一个关于骑马与砍杀的剧本简单快速的制作工具 前言 ​在很久以前的时候,也就是刚开始玩骑砍的时候就想着能够制作一个自己的剧本,用于书写自己想要的故事.当我怀着远大的梦想去这么 ...

  8. 新鲜出炉!大规模神经网络最新综述!

    来源:arXiv 编译:机器之心 在本综述论文中,研究者解释了不同技术的工作原理.评估和比较,还分析了一些实现这些技术的框架. 现代深度学习和人工智能技术的发展涉及使用深度神经网络(DNN)来解决图像 ...

  9. 【强化学习】表格型求解方法总结:基于表格型方法(Tabular Methods)的规划(Planning)和学习(Learning)

    前言: 本次笔记对<强化学习(第二版)>第八章进行概括性描述.同时,也对本书的第一部分(共三部分)表格型求解方法进行了系统性阐述. 以下概括都是基于我个人的理解,可能有误,欢迎交流:pip ...

最新文章

  1. AD域中NTP服务器的配置
  2. python——输入输出
  3. 数字和字符串的相互转化
  4. 揭秘一线互联网企业 前端JavaScript高级面试
  5. mysql数据存储到指定位置_Mysql数据库表分区存储到指定磁盘路径
  6. 安装Visual Studio 2005 SP1时遇到1718错误
  7. 诺基亚推出全新IMPACT平台,交付快捷安全的物联网服务
  8. UVa 10945 - Mother bear
  9. Scala下载与安装
  10. Unity桌面程序读取Excel表格
  11. 1对1实时视频/语音通讯原理概述
  12. 深富策略:指数横盘震荡整理 汽车整车表现亮眼
  13. OpenHarmony命令行调试工具hdc_std介绍
  14. 圣诞节,描述京东 Merry Christmas
  15. Nvidia PhysX 学习文档7:Geometry
  16. unity3d C#用匿名委托循环注册按钮点击事件报错:索引超界 ArgumentOutOfRangeException: Index was out of range. Must be non-ne
  17. 拆解闲鱼无货源盈利模式,需要注意的细节太多?
  18. 看雪技术论坛加密与解密工具新年大礼包2007光盘
  19. echarts引入百度地图API,设置bmap属性问题
  20. 蓝桥杯模块学习10——串口通信(深夜学习——单片机)

热门文章

  1. ES6——class
  2. PHP如何安装和配置Zend Studio
  3. WinServer-AD操作常用powershell命令
  4. valgrind 的一个小缺陷
  5. 一个 .Net Hashtable 的锁的疑惑和解决
  6. android 方向控制界面,Android Studio屏幕方向以及UI界面状态的保存代码详解
  7. css 图文 上下 居中,CSS垂直居中的6种方法
  8. php系统构建,增加知识: 如何使用PHPstudy为后端系统构建PHP源网站
  9. 7限制cpu使用_Kubernetes 资源配额使用指南 | Linux 中国
  10. java正则表达式去除重复_Java正则表达式:重复捕获组