创客更新装备 动态规划
创客更新装备
时间限制: 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;
}
创客更新装备 动态规划相关推荐
- 倩女幽魂服务器维修,《倩女幽魂2》2014年5月8日维护更新公告
亲爱的<倩女幽魂2 Online>玩家: 为了保证服务器的运行稳定和服务质量,<倩女幽魂2 Online>将于2014年5月8日8:00停机进行维护工作,预计维护时间为120分 ...
- 浅谈我对动态规划的一点理解---大家准备好小板凳,我要开始吹牛皮了~~~
前言 作为一个退役狗跟大家扯这些东西,感觉确实有点...但是,针对网上没有一篇文章能够很详细的把动态规划问题说明的很清楚,我决定还是拿出我的全部家当,来跟大家分享我对动态规划的理解,我会尽可能的把所遇 ...
- 动态规划问题思想及算法
基本思想 若要解一个给定问题,我们需要解其不同部分(即子问题),再合并子问题的解以得出原问题的解. 通常许多子问题非常相似,为此动态规划法试图仅仅解决每个子问题一次,从而减少计算量: 一旦某个给定子问 ...
- RPG游戏《黑暗之光》流程介绍与代码分析之(八):装备系统的实现
第八章 装备系统 装备系统是提升角色属性的重要系统,本篇博客重点实现装备系统UI的设计以及装备栏与物品栏的交互. 8.1 基础界面的设计 导入装备UI的模型,命名为Equipment,并添加5个方框, ...
- 强化学习4——无模型预测(蒙特卡洛法和TD法)
文章目录 强化学习--无模型预测与控制 无模型的概念 无模型预测 蒙特卡洛法 基本蒙特卡洛 改进增量MC更新算法 动态规划(DP)与蒙特卡洛(MC)的区别 Temporal Difference(TD ...
- 大规模神经网络最新文献综述:训练高效DNN、节省内存使用、优化器设计
©作者 | Julia Gusak等 编辑 | 杜伟.泽南 来源 | 机器之心 在本综述论文中,研究者解释了不同技术的工作原理.评估和比较,还分析了一些实现这些技术的框架. 现代深度学习和人工智能技术 ...
- 骑马与砍杀python代码_GitHub - yunwei1237/scottish-fold: 一个关于骑马与砍杀的剧本制作工具...
scottish-fold 一个关于骑马与砍杀的剧本简单快速的制作工具 前言 在很久以前的时候,也就是刚开始玩骑砍的时候就想着能够制作一个自己的剧本,用于书写自己想要的故事.当我怀着远大的梦想去这么 ...
- 新鲜出炉!大规模神经网络最新综述!
来源:arXiv 编译:机器之心 在本综述论文中,研究者解释了不同技术的工作原理.评估和比较,还分析了一些实现这些技术的框架. 现代深度学习和人工智能技术的发展涉及使用深度神经网络(DNN)来解决图像 ...
- 【强化学习】表格型求解方法总结:基于表格型方法(Tabular Methods)的规划(Planning)和学习(Learning)
前言: 本次笔记对<强化学习(第二版)>第八章进行概括性描述.同时,也对本书的第一部分(共三部分)表格型求解方法进行了系统性阐述. 以下概括都是基于我个人的理解,可能有误,欢迎交流:pip ...
最新文章
- AD域中NTP服务器的配置
- python——输入输出
- 数字和字符串的相互转化
- 揭秘一线互联网企业 前端JavaScript高级面试
- mysql数据存储到指定位置_Mysql数据库表分区存储到指定磁盘路径
- 安装Visual Studio 2005 SP1时遇到1718错误
- 诺基亚推出全新IMPACT平台,交付快捷安全的物联网服务
- UVa 10945 - Mother bear
- Scala下载与安装
- Unity桌面程序读取Excel表格
- 1对1实时视频/语音通讯原理概述
- 深富策略:指数横盘震荡整理 汽车整车表现亮眼
- OpenHarmony命令行调试工具hdc_std介绍
- 圣诞节,描述京东 Merry Christmas
- Nvidia PhysX 学习文档7:Geometry
- unity3d C#用匿名委托循环注册按钮点击事件报错:索引超界 ArgumentOutOfRangeException: Index was out of range. Must be non-ne
- 拆解闲鱼无货源盈利模式,需要注意的细节太多?
- 看雪技术论坛加密与解密工具新年大礼包2007光盘
- echarts引入百度地图API,设置bmap属性问题
- 蓝桥杯模块学习10——串口通信(深夜学习——单片机)
热门文章
- ES6——class
- PHP如何安装和配置Zend Studio
- WinServer-AD操作常用powershell命令
- valgrind 的一个小缺陷
- 一个 .Net Hashtable 的锁的疑惑和解决
- android 方向控制界面,Android Studio屏幕方向以及UI界面状态的保存代码详解
- css 图文 上下 居中,CSS垂直居中的6种方法
- php系统构建,增加知识: 如何使用PHPstudy为后端系统构建PHP源网站
- 7限制cpu使用_Kubernetes 资源配额使用指南 | Linux 中国
- java正则表达式去除重复_Java正则表达式:重复捕获组