首页 > 其他分享 >DP选做

DP选做

时间:2023-07-01 10:55:15浏览次数:38  
标签:选做 朝向 max 灯笼 DP dp

DP选做(持续更新ing)

目录

感觉自己DP推式子的能力完全不足,整理一下。

其实也不知道这些极其困难的思维题我到底做不做得来,希望做多了思维的强度也会提升吧。

CF1476F Lanterns

有 \(n\) 个灯笼拍成一排,第 \(i\) 个灯笼具有 \(p_i\) 的亮度。每个灯笼要么朝向左,照亮左边编号为 \([i - p_i,i - 1]\) 的灯笼,要么朝向右,照亮右边编号为 \([i + 1, i + p_i]\) 的灯笼。

寻找一种方案,为所有的灯笼确定朝向,使得每一个灯笼被至少一个其他灯笼照亮。

先想想DP什么吧,我们设计\(dp_i\)表示考虑到\(i\),能覆盖到的最大前缀是多少,之所以这么设计是因为不会留下空,后续不需要补。

然后我们想一下转移,其实这个时候策略还蛮明显的,就是如果左边没有填满显然就必须填左边,否则填右边是最好的。

然后就分析一下方程怎么写/yun

首先如果\(dp_{i-1}>i\)了,就直接扩展\(dp_i=max(i+p_i,dp_{i-1})\)

否则,根本接不到\(i\),就直接继承上一个状态\(dp_i=dp_{i-1}\)

然后我们考虑往左扩展是怎么样的,那其实就是覆盖了\([i-p_i,i-1]\),然后我们要在覆盖了\([1,i-p_i]\)的基础上尽可能地往右扩展,这样的话其实改变了原来已经确定了的点的扩展方向,那我们就枚举来解决这个问题,即在满足\(dp_j\geq i-p_i-1\)的情况下,最大化\(max(i-1,max_{j\leq k\leq i}j+p_j)\),然后肯定是往右改的越多答案可能会越优,那自然就是让\(j\)尽量的小,这个用\(lowerbound\)实现就好了。

标签:选做,朝向,max,灯笼,DP,dp
From: https://www.cnblogs.com/longscatterer/p/dp-ke-ai-nie.html

相关文章

  • UnrecognizedPropertyException: Unrecognized field 解决
    转载请注明出处:在项目得不同环境上对接外部的服务接口,且存在不同版本间可能有字段不同得问题,遇到这种问题在使用jackson解析时,如果格式化得字符串与定义得java类不能完全对应时,就会报错:Unrecognizedfield,代码还原:importcom.fasterxml.jackson.annotation.JsonProperty;......
  • 编译python为可执行文件遇到的问题:使用python-oracledb连接oracle数据库时出现错误:DP
    错误原文:DPY-3010:connectionstothisdatabaseserverversionarenotsupportedbypython-oracledbinthinmode链接数据库方式如下:connection=create_engine("oracle+oracledb://user:password@host:post/dbname") PyCharm编译器内运行成功但编译后会有DP......
  • CubeMX TIM 配置AutoReloadPreload
    CubeMX 配置定时器的时候,出现如下选项: 成员变量AutoReloadPreload的取值范围TIM_AUTORELOAD_PRELOAD_DISABLE预装载功能关闭TIM_AUTORELOAD_PRELOAD_ENABLE预装载功能开启用于设置自动重载寄存器TIMx_ARR的预装载功能,即自动重装寄存器的内容是更新事件产生时写入有......
  • CentOS7安装xrdp(Windows远程桌面连接Linux)
    前提:CentOS安装桌面,如果无桌面,请执行:yum-ygroupsinstall"GNOMEDesktop"startx方法一配置源yuminstallepel*-y安装xrdpyum--enablerepo=epel-yinstallxrdp 方法二1、安装xrdp更具自己的系统位数选择对应的包(如果是32位使用则选择i386,如果是64位,请选择x86_64),查......
  • matlab调制解调 OFDM OTFS 16qam qpsk ldpc turbo在高斯白噪声,频率选择性衰落信道下
    matlab调制解调 OFDMOTFS16qamqpskldpcturbo在高斯白噪声,频率选择性衰落信道下的误比特率性能仿真,matlab代码OFDMsimulink 包括添加保护间隔(cp),信道均衡(ZFMMSEMRCMALMSEE)代码每行都有注释,适用于学习,附带仿真说明,完全不用担心看不懂原创文章,转载请说明出处,资料来......
  • 2023年下半年西安/成都/深圳NPDP产品经理认证报名
    产品经理国际资格认证NPDP是新产品开发方面的认证,集理论、方法与实践为一体的全方位的知识体系,为公司组织层级进行规划、决策、执行提供良好的方法体系支撑。  【认证机构】 产品开发与管理协会(PDMA)成立于1979年,是全球范围内产品开发与管理专业人士最杰出的倡导者,协助个人、企业......
  • uvalive 3363(区间dp)
    题意:给出一个字符串,问最多能缩减到多短。缩减方式比如:aaaaabbbb->5(a)4(b)nowletsgogogoletsgogogo->now2(lets3(go))题解:区间dp,f[l][r]表示从l到r最多缩减到的长度。#include<stdio.h>#include<string.h>#include<algorithm>usingnamespacestd;constintN=2......
  • uva 1407(树形dp)
    题意:有一个机器人从一个节点进入一棵树,给出n个节点之间的距离,如果机器人的能量为x,也就是最多走x,且机器人不需要回到起点,问机器人最多能走多少个节点。题解:f[i][j][0]:遍历子树i的j个节点且最后不需要回到子树的根节点i最少用多少能量f[i][j][1]:遍历子树i的j个节点且最后回......
  • uva 1474(dp)
    题意:有n个队伍修路,有m个避难所,编号从1开始,给出了每个队伍和避难所的位置,每个队伍和避难所之间的距离是|a[i]-b[j]|,如果为每一个队伍分配避难所,且每个避难所至少被分配一个队伍,问每个队伍和自己的避难所之间最短距离和是多少,给出每个队伍分配的避难所编号。题解:dp的状态很好找,因......
  • Linux 中的 dpkg 命令及示例
    Linux因其稳定性、安全性和灵活性而成为世界上使用最广泛的操作系统之一。Linux操作系统的关键组件之一是包管理系统。正在使用不同的包管理系统,但最流行的系统之一是dpkg系统。在本文中,我们将探讨Linux中的dpkg命令、它的作用以及如何有效地使用它。我还将提供一些示例来......