洛谷P1220 关路灯 (区间动态规划)

2023-10-31

https://www.luogu.org/problemnew/show/P1220

题解

对于从第i个点走到第j个点,肯定会将[i,j]的路灯全部关闭。考虑关闭第i+1个点,现在可能有两种状态,关完[i.j]之后位于i,或者位于j,所以设计状态为dp[i][j][0/1]代表关完[i.j]后位于i或者j,这样转移就显的很简单了。

预处理路灯功率前缀和,这样可以很方便的算出[i.j]内的路灯在t时间内的功率消耗,这也是状态转移的权值。

总的状态转移方程:

dp[i][j][0] = min(dp[i][j][0], dp[i+1][j][0]+w1, dp[i+1][j][1]+w2)
dp[i][j][1] = min(dp[i][j][1], dp[i][j-1][0]+w1, dp[i][j-1][1]+w2)

因为肯定是从小的区间转移到大的区间,所以这和区间dp一样,从小区间枚举到大区间。

代码

#include <bits/stdc++.h>
using namespace std;
#define FOR0(a,b) for(int i = a; i < b; ++i)
#define FORE(a,b) for(int i = a; i <= b; ++i)
typedef long long ll;
typedef pair<int,int> pii;
const int INF = 0x3f3f3f3f;
int dp[55][55][2],n,c;
int a[55], b[55],sum
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

洛谷P1220 关路灯 (区间动态规划) 的相关文章

  • 01背包问题(采药) 动态规划,python实现

    采药问题 题目描述 辰辰是个天资聪颖的孩子 他的梦想是成为世界上最伟大的医师 为此 他想拜附近最有威望的医师为师 医师为了判断他的资质 给他出了一个难题 医师把他带到一个到处都是草药的山洞里对他说 孩子 这个山洞里有一些不同的草药 采每一株
  • Python实现找零兑换的三种解法

    找零兑换 找零兑换问题最直接的解法就是贪心策略 比如问题 有面值1 5 10 25的硬币 求解兑换63元所需的最少硬币数 贪心策略的思想就是不断的利用面值最大的硬币去尝试 不行了 在尝试较小面值的硬币 该例中也即使用25的硬币去尝试 2枚2
  • 1746. 经过一次操作后的最大子数组和

    1746 经过一次操作后的最大子数组和 你有一个整数数组 nums 你只能将一个元素 nums i 替换为 nums i nums i 返回替换后的最大子数组和 示例 1 输入 nums 2 1 4 3 输出 17 解释 你可以把 4替换为
  • 最长公共上升子序列(LCIS)

    前置知识 LCS LIS 注意 刚开始看这个问题的时候 第一反应是先求出LCS再求出LCS的LIS 事实上这是有问题的 我们并不能保证这么求出的LCIS是最长的 比如下面这个例子 Example a 7 1 5 6 4 2 7 b 7 1
  • 数学建模常用的四大模型

    目录 1 评价模型 2 优化模型 3 分类模型 4 预测模型 本文主要介绍数学建模的四大模型分类 分别是评价模型 优化模型 分类模型 预测模型 关注公众号 数模乐园 回复 买 获得更多数模教程 1 评价模型 评价模型可以处理难于完全定量分析
  • 【类】二维dp:动态规划背包问题

    dp n m 含义就是 当有n种物品时且背包有m容量时 这个背包能产生的最大价值 状态转换关系是 dp n m dp n 1 m dp n 1 m 新物品重量 意思就是 当面对新来的一个物品时 求这个情况下 背包能产生的最大价值 相当于求下
  • LeetCode64. 最小路径和

    题目大意 求出从网络左上角到右下角的一条代价最小的路径和 题目分析 使用动态规划 求出左上角到网络中每个点的代价最小路径和 假设当前要求的是point i j 点 那么它的值就应该是从左上角到它上面那个点point i 1 j 的路径和 与
  • 【算法-LeetCode】63. 不同路径 II(动态规划;滚动数组)

    63 不同路径 II 力扣 LeetCode 文章起笔 2021年11月13日16 28 08 问题描述及示例 一个机器人位于一个 m x n 网格的左上角 起始点在下图中标记为 Start 机器人每次只能向下或者向右移动一步 机器人试图达
  • 华为od机考题目-HJ68-成绩排序(比较难)

    while 1 try count int input reverse True if input 0 else False temp lt
  • 【编程之路】面试必刷TOP101:动态规划(67-71,Python实现)

    面试必刷TOP101 动态规划 67 71 Python实现 67 不同路径的数目 一 小试牛刀 67 1 递归 首先我们在左上角第一个格子的时候 有两种行走方式 如果向右走 相当于后面在一个 n 1
  • 动态规划算法解决背包问题(Java实现)

    文章收藏的好句子 你在书本上花的任何时间 都会在某一个时刻给你回报 目录 1 动态规划算法的概述 2 背包问题 3 动态规划算法解决背包问题 3 1 不可重复装入商品 3 2 思路分析 1 动态规划算法的概述 1 动态规划算法的思想是 将大
  • leetcode动态规划总结之01背包和完全背包问题

    1 背包问题分类 其中 除了01背包和完全背包外 leetcode题目中好像还没有涉及其他类型的背包 在这里我就不做总结 2 01背包理论 有N件物品和一个最大承载重量为W 的背包 第i件物品的重量是weight i 其价值是value i
  • LeetCode338. 比特位计数

    题目连接 https leetcode cn com problems counting bits 解题思路 这道题需要计算从 0 到 num 的每个数的二进制表示中的 1 的数目 最直观的方法是对每个数直接计算二进制表示中的 1 的数目
  • 【动态规划】从入门到实践---动态规划详解

    目录 1 动态规划概念 一 定义数组元素的含义 二 找到数组元素之间的关系表达式 三 找到初始值 2 案例详解 一 爬楼梯 1 定义数组元素的含义 2 找到数组元素之间的关系表达式 3 找到初始值 案例二 最短路径 题目 做题步骤 1 定义
  • OD机试题目【计算网络信号】

    网络信号经过传递会逐层衰减 且遇到阻隔物无法直接穿透 在此情况下需要计算某个位置的网络信号值 注意 网络信号可以绕过阻隔物 array m n 的二维数组代表网格地图 array i j 0代表i行j列是空旷位置 array i j x x
  • 3254 Corn Fields 这题解真的不能再详细了!

    题意 农场主John新买了一块长方形的新牧场 这块牧场被划分成 M M M行 N N N列 1
  • Python之动态规划

    序言 最近在学习python语言 语言有通用性 此文记录复习动态规划并练习python语言 动态规划 Dynamic Programming 动态规划是运筹学的一个分支 是求解决策过程最优化的过程 20世纪50年代初 美国数学家贝尔曼 R
  • 雪糕的最大数量 排序+贪心

    雪糕的最大数量 雪糕的最大数量 题目描述 样例 数据范围 思路 代码 题目描述 夏日炎炎 小男孩 Tony 想买一些雪糕消消暑 商店中新到 n 支雪糕 用长度为 n 的数组 costs 表示雪糕的定价 其中 costs i 表示第 i 支雪
  • 超简单:很火的3D立体动态相册,送给心爱的那个人

    1 首先 我们一共需要三个文件 目录关系如下所示 先建index html文件吧 电脑上先创建一个 txt文件 在里面加入代码后保存 重命名为index html 记得把原来的 txt后缀覆盖 html我用的谷歌浏览器 index html
  • acwing算法提高之动态规划--数字三角形模型

    目录 1 基础知识 2 模板 3 工程化 1 基础知识 暂无 2 模板 暂无 3 工程化 题目1 摘花生 解题思路 DP 状态定义 f i j 从 1 1 走到 i j 所摘花生总和 状态转移 有 从上方走到 i j 有 f i 1 j w

随机推荐

  • 基于树莓派的智能家居开发项目总结

    目录 一 项目简单总结下 二 代码实现 1 主函数mainPro c 2 控制设备的头文件inputCommand h 3 外接设备的头文件controlDevices h 4 服务器sockeContrl c 5 语音模块voiceCon
  • 启动项详解

    启动项详解 启动项目就是开机的时候系统会在前台或者后台运行的程序 当Windows 操作系统 完成登录过程 进程表中出现了很多的进程 Windows在启动的时候 自动加载了很多程序 许多程序的自启动 给我们带来了很多方便 这是不争的事实 但
  • 使用Python的imap和email模块读取邮件

    SMTP发送邮件的博文很多 但完整读取邮件的较少 本文主要是Python3读取邮件的编码 同时使用BeautifulSoup解析邮件内容 Python版本信息 如下 Python 3 8 2 tags v3 8 2 7b3ab59 Feb
  • 分支-20. 计算符号函数的值(10)

    对于任一整数n 符号函数sign n 的定义如下 请编写程序计算该函数对任一输入整数的值 输入格式 输入在一行中给出整数n 输出格式 在一行中按照格式 sign n 函数值 输出该整数n对应的函数值 输入样例 1 10 输出样例 1 sig
  • C++学习路线---加油呀

    转载自 编程剑谱公众号 1 C 基础 C 是面向对象的语言 一定要理解清楚面向对象的思想 先把 C 的基础知识点打牢 刚从面向过程中转变过来 一定一定要适应面向对象的写法 在学习面向对象的时候 也要考虑如何用面向过程去实现面向对象 其实也就
  • Xpath的使用

    个人简介 作者简介 大家好 我是W chuanqi 一个编程爱好者 个人主页 W chaunqi 支持我 点赞 收藏 留言 愿你我共勉 若身在泥潭 心也在泥潭 则满眼望去均是泥潭 若身在泥潭 而心系鲲鹏 则能见九万里天地 文章目录 XPat
  • 【软件测试】大厂测工都是这样学习的,你get到了吗?

    有不少的软件测试工程师站在 十字路口 迷茫 无助 找不到自己的方向 一切的迷茫都是因为想得太多而做的太少 每位软件测试行业从业者都能意识到目前自己面临的窘境 但能及时作出改变 顺应时代变化的人还是太少 多数人明明 泰山崩于前而面色如土 却只
  • 【番杰的小技巧笔记】如何通过嘉立创免费打印立创EDA设计的PCB

    引言 嘉立创从今年 2022 八月开始 就不能免费打印其他软件设计的PCB 一次消费20以上可以 所以我来说下如何在嘉立创上免费打印立创EDA设计的PCB 1 下单步骤 1 1 下载 嘉立创下单小助手 想要免费打印 就得先下载 嘉立创下单小
  • xps数据怎么导出为txt_如何处理XPS原始数据

    盼了好久 终于盼来了XPS的分峰拟合教程 拿到XPS的实验结果 首先我们要会看XPS高分辨谱原始数据 XPS高分辨谱的原始数据一般为 xls 文件 打开该文件 我们可以看到各种特定元素的高分辨谱及对它们进行半定量分析的原始数据 如下图 记住
  • 数据结构——线性表

    目录 2 1线性表的定义和特点 2 2案例引入 2 3线性的类型定义 基本操作 一 基本操作 二 基本操作 三 基本操作 四 基本操作 五 2 4线性表的顺序表示和实现 线性表的顺序存储结构占用一片连续的存储空间 顺序表中元素存储位置的计算
  • 微服务容器化实践——微服务设计拆分方法论

    文章目录 微服务设计原则 垂直划分优先原则 持续演进原则 服务自治 接口隔离原则 自动化驱动原则 微服务划分方法 基于数据驱动划分服务 基于领域驱动划分服务 从已有单体架构中逐步划分服务 就像很难用一个绝对的方式去判断架构的好坏一样 在大多
  • IDEA配置方法注释

    IDEA类和方法注释模板设置 非常详细 百度文库 一 设置类的注释模板 1 选择File Settings Editor File and Code Templates Files Class 可以看到创建Class时引入了一个参数 Fil
  • 微信授权网页扫码登录php,PHP实现微信开放平台扫码登录源码

    1 首先到微信开放平台申请https open weixin qq com 获取到appid和APPSECRET 前台显示页面如下html gt var obj new WxLogin id login container appid wx
  • 基于javaweb的音乐网站

    Springboot springmvc mybatis 数据库mysql 开发工具不限 前台 html css js 实现了注册 登陆 权限校验 上传歌曲 下载歌曲 播放歌曲 删除歌曲 个人歌单 后台 用户管理 mv上传 播放 歌曲新增
  • JVM安全点详解

    1 安全点是什么 在虚拟机在进行可达性分析时 HotSpot虚拟机会在特定的位置记录在哪有引用 这些特定的位置就叫做安全点 2 安全点的作用是什么 上边已经说过了 在Oomap的帮助下 HotSpot虚拟机很快就完成了GC Roots枚举
  • Java基础之——Stream 流、方法引用

    Stream 流 方法引用 1 Stream 流 1 1 引言 传统集合的多步遍历代码 几乎所有的集合 如 Collection 接口或 Map 接口等 都支持直接或间接的遍历操作 而当我们需要对集合中的元素进行操作的时候 除了必需的添加
  • 第八章 课后习题

    习题 一 填空题 1 在C 的输入输出系统中 最核心的对象是 流 执行输入和输出操作的类体系叫做 流类 2 当实际进I O操作时 cin与 标准输入 设备相关联 3 C 的流类库预定义了4个流 它们是 cin cout cerr 和 clo
  • 练手题 ——《应该被禁止的Leetflex账户》LeetCode Plus 会员专享题【详细解析】Hive / MySQL

    大家早上好 本人姓吴 如果觉得文章写得还行的话也可以叫我吴老师 欢迎大家跟我一起走进数据分析的世界 一起学习 感兴趣的朋友可以关注我的数据分析专栏 里面有许多优质的文章跟大家分享哦 另外也欢迎大家关注我的SQL刷题专栏 里面有我分享的高质量
  • Kafka的安装是否成功的简单测试命令

    Kafka的安装是否成功的简单测试命令 首先了解一下kafka的基本概念 1 Broker Kafka集群包含一个或多个服务器 这种服务器被称为broker 2 Topic 每条发布到Kafka集群的消息都有一个类别 这个类别被称为Topi
  • 洛谷P1220 关路灯 (区间动态规划)

    https www luogu org problemnew show P1220 题解 对于从第i个点走到第j个点 肯定会将 i j 的路灯全部关闭 考虑关闭第i 1个点 现在可能有两种状态 关完 i j 之后位于i 或者位于j 所以设计