当前位置: 首页 > news >正文

[ABC400F] Happy Birthday! 3 题解

考虑正难则反。问题转化为:

一个环上有 n n n 个物品,颜色分别为 c o l i col_i coli,每次操作选择两个数 i , j i, j i,j 使得 ∀ k ∈ [ i , j ] , c o l k = c o l i ∨ c o l k = 0 \forall k \in [i, j], col_k = col_i \lor col_k = 0 k[i,j],colk=colicolk=0,将 [ i , j ] [i, j] [i,j] 中的每个物品的颜色都设为 0 0 0。(下文将这种操作称为“漂白”。)一次操作的代价为 j − i + 1 + x c o l i j - i + 1 + x_{col_i} ji+1+xcoli。求将整个环漂白的最小总代价。

先断环为链。设 d p i , j dp_{i, j} dpi,j 表示将 [ i , j ] [i, j] [i,j] 漂白的最小代价,那么显然有 d p i , j = min ⁡ k = i j − 1 d p i , k + d p k + 1 , j dp_{i, j} = \min_{k = i}^{j - 1} dp_{i, k} + dp_{k + 1, j} dpi,j=mink=ij1dpi,k+dpk+1,j

f i , j f_{i, j} fi,j 表示使 [ i , j ] [i, j] [i,j] 能够漂白的最小代价,那么显然有 f i , j = min ⁡ k = 1 j − 1 f i , k + d p k + 1 , j f_{i, j} = \min_{k = 1}^{j - 1} f_{i, k} + dp_{k + 1, j} fi,j=mink=1j1fi,k+dpk+1,j。当 c o l i = c o l j col_i = col_j coli=colj 时,有 f i , j = min ⁡ ( f i , j , f i , j − 1 ) , d p i , j = min ⁡ ( d p i , j , f i , j + j − i + x c o l i ) f_{i, j} = \min (f_{i, j}, f_{i, j - 1}), dp_{i, j} = \min (dp_{i, j}, f_{i, j} + j - i + x_{col_i}) fi,j=min(fi,j,fi,j1),dpi,j=min(dpi,j,fi,j+ji+xcoli)

答案即为 min ⁡ i = 1 n d p i , i + n − 1 \min_{i = 1}^n dp_{i, i + n - 1} mini=1ndpi,i+n1

相关文章:

  • Web渗透之XSS注入
  • LeetCode 255 超通俗讲解:Swift 验证前序是否 BST
  • 【经济保护主义叙事】
  • QQ风格客服聊天窗口
  • 英国股票实时API 对比:iTick的差异化优势解析
  • 机器学习(3)——决策树
  • AI证件照生成API:快速创建证件照
  • 游戏引擎学习第220天
  • ssh 免密登录服务器(vscode +ssh 免密登录)
  • 吃透LangChain,我的理解像Java的Spring
  • 2025最新系统 Git 教程(七)(完结)
  • 零基础上手Python数据分析 (12):DataFrame 数据清洗与预处理 (下) - 类型转换、格式化、文本与日期处理
  • 从0到1构建企业级消息系统服务体系(一):产品架构视角下的高并发设计与动态响应能力建设
  • 猫咪如厕检测与分类识别系统系列【三】融合yolov11目标检测
  • cdp-(Chrome DevTools Protocol) browserscan检测原理逆向分析
  • AVUE 搜索 和 表单 标签分开对齐方式
  • Python与R语言用XGBOOST、NLTK、LASSO、决策树、聚类分析电商平台评论信息数据集
  • Linux安装yum和python
  • Python将不能修改的值称为不可变的 ,而不可变的列表被称为元组------元组
  • leetcode刷题日记——螺旋矩阵
  • 涟水做网站/seo日常优化内容是什么
  • 织梦网站后台logo删除/互联网广告投放平台加盟
  • 网站建设实习小结/手机端搜索引擎排名
  • 维护网站费用/深圳宝安seo外包
  • 做网站在阿里云上面买哪个服务/快速排名优化
  • 平度网站建设/怎么提升关键词的质量度