首页 > 其他分享 >【NowCoder 补全计划】动态规划

【NowCoder 补全计划】动态规划

时间:2024-10-20 20:12:37浏览次数:5  
标签:背包 题目 补全 jt 原串 括号 那么 NowCoder 动态

NC21303 删除括号

给两个合法括号串 $s,t$,每次可以从 $s$ 删除一对相邻的括号 $()$,问是否可以从 $s$ 变成 $t$。

设 $f(i,j,k)$ 表示当前原串到 $i$,匹配串到 $j$,且原串略过 $k$ 个左括号(且这些左括号还未匹配),是否可能成立。

  • 如果 $k=0$,且 $s_i=t_j$,那么 $f(i-1,j-1,k) \to f(i,j,k)$。
  • 如果原串第 $i$ 位是 $($,那么 $f(i-1,j,k-1) \to f(i,j,k)$。
  • 如果原串第 $i$ 位是 $)$,那么 $f(i-1,j,k+1) \to f(i,j,k)$。

最后判断 $f(lens,lent,0)$ 是否为 true 即可。时间复杂度 $\mathcal{O}(n^3)$。

NC21314 CodeForces

如果题目分数没有随时间变动,那么直接背包就好了。

但是现在不是这样,由于背包枚举物品是有次序的,如果两题都做,那么背包会默认优先做编号小的题目,这未必是最优的。

因此我们需要改变题目的枚举顺序,此处可以贪心。

假设当前两题 $i,j \ (i<j)$ 的分数减少速度是 $v_i,v_j$,做题时长为 $t_i,t_j$。

那么先做 $i$ 后做 $j$ 的损失是 $v_it_i + v_j(t_i+t_j)$,先做 $j$ 后做 $i$ 的损失是 $v_jt_j+ v_i(t_i+t_j)$。

我们想让损失变小,需要满足 $v_it_i + v_j(t_i+t_j) \le v_jt_j+v_i(t_i+t_j)$,化简得到 $v_jt_i \le v_it_j$。

按照这个顺序重排题目,就可以上背包了。

标签:背包,题目,补全,jt,原串,括号,那么,NowCoder,动态
From: https://www.cnblogs.com/HZSPZCR/p/18487777

相关文章

  • 动态分层强化学习(DHRL)算法
    动态分层强化学习(DHRL)算法详解一、引言在强化学习(ReinforcementLearning,RL)领域,面对复杂、大规模的任务,传统方法往往面临诸多挑战,如高维度状态空间导致的“维数灾难”、长期依赖与稀疏奖励等问题。为了克服这些挑战,分层强化学习(HierarchicalReinforcementLearning,HR......
  • 动态规划的特征
    目录讨论背景分治特点最优子结构自底向上求解子问题复用子问题独立参考文献讨论背景为了方便后文举例,此处叙述一下0-1背包问题的定义:给定一个背包容量W,以及一系列物品{I......
  • Android开发 registerForActivityResult 传值和申请动态权限
    前言  startActivityForResult()被弃用,现在可以通过registerForActivityResult进行Activity之间的传值和获取申请动态权限结果Activity向上传值MainActivitypackagecom.zh.demoimportandroid.content.Intentimportandroid.os.Bundleimportandroid.util.Logimport......
  • Java高级:动态代理
    前言:动态代理是一种设计模式。之所以学习动态代理这种设计模式,是因为后面学习一些技术、项目中,会用到动态代理。一、程序为什么需要代理?代理长什么样?1、为什么需要代理?拿现实举例:一个明星,一开始想唱歌就唱歌、想跳舞就跳舞。等到这个明星稍微有了点热度,就要开始收费表演......
  • Openlayers高级交互(3/20):动态添加 layer 到 layerGroup,并动态删除
    layerGroup是OpenLayers库中的一个类,用于创建图层组。图层组允许您将多个图层组合在一起,并作为一个整体来控制它们的可见性和其他属性。本示例动态添加layer到layerGroup,并动态删除。效果图专栏名称内容介绍Openlayers基础实战(72篇)专栏提供73篇文章,为小白群体提供基......
  • JMeter 动态参数赋值实践
    目录前言单线程+用户参数场景说明实战结果配置明细单线程+CSVDataSetConfig场景说明实践结果配置明细多线程循环单次执行场景说明实践结果配置明细单线程+控制器+用户自定义变量+用户参数场景说明实战结果配置明细多并发+多接口+同步定时器......
  • YOLO11-pose关键点检测:可变形双级路由注意力(DBRA),魔改动态稀疏注意力的双层路由方法BiL
    ......
  • AOP - 自己写 JDK 动态代理增强 bean
    AOP的原理就是给目标对象创建代理对象,达到增强目标对象方法的目的如果目标对象实现了接口就是用JDK动态代理,如果没实现接口就是用三方的CGLIB代理如果不使用AOP想要增强一个bean可以这样做:@ComponentpublicclassTestimplementsBeanPostProcessor,ApplicationCon......
  • 纸币问题(动态规划)
    前言本蒟蒻今天在洛谷上练动态规划,遂写此篇一、纸币问题1P2842纸币问题1题目描述某国有\(n\)种纸币,每种纸币面额为\(a_i\)并且有无限张,现在要凑出\(w\)的金额,试问最少用多少张纸币可以凑出来?输入格式第一行两个整数\(n,w\),分别表示纸币的种数和要凑出的金额。......
  • 处理R动态链接库确实得问题
    参考文档https://askubuntu.com/questions/1409562/error-while-loading-shared-libraries-libicudata-so-66-libicudata-so-66-and-lib要使用清华镜像源来解决libicu66的问题,可以按照以下步骤更新的sources.list文件:打开sources.list文件:sudogedit/etc/apt/sources......