首页 > 其他分享 >SS241009C. 蛋糕(cake)

SS241009C. 蛋糕(cake)

时间:2024-10-10 21:03:59浏览次数:1  
标签:截距 数字 min 左边 SS241009C 斜率 蛋糕 cake sim

SS241009C. 蛋糕(cake)

题意

你有 \(n\) 个数字,有两种操作。

  1. 删除最左边的数字,代价为数字大小。(吃左边)
  2. 令 \(>0\) 的所有数字大小减 \(1\),代价为 \(>0\) 的最大的数字的初始值。(吃底下)

求删完所有数字的最小代价。

思路

据搜索引擎,凹包不具有斜率单调性质,因此题解说的凹包应为凸包。没听说过凹包,OI 不考吧

凸包好抽象,但是凹包更抽象

以下说的截距均指函数和 \(y\) 轴交点。

容易想到 DP。设 \(f_{i,j}\) 表示已经删完 \(a_{1 \sim i-1}\),做了 \(j\) 次吃底下,的最小贡献。

假设删除一个空的数字代价为 \(0\),答案就是已经删完 \(n\) 个数字,做完任意次吃底下的最小代价,即 \(f_{n+1,x}\)。

设 \(b\) 为后缀最大值数组。有转移方程:

  • \(f_{i,j} + \max(a_i -j,0) \to f_{i+1,j}\)
  • \(f_{i,j} + b_i \to f_{i,j+1}\)

暴力做是 \(O(n^2)\) 的。

根本不能容易感觉这个函数具有凸性。

或许突破口不在感觉有凸性,可能是我们看到答案并不关心 \(j\) 这一维,因此考虑吧 \(j\) 这一维作为自变量,研究函数 \(f_i(j)\) 的性质。

\(f_i(j)\) 由 \(f_{i-1}(j)\) 先做若干次吃底部,再做一次吃左边得到。

也就是先加若干次 \(b_i\),再加一个 \(\max(a_i-j,0)\)。

有 \(f_1(0)=0\),先做吃底部,\(j=\) 多少就要吃多少次,因此 \(f_1(j)\gets f_1(0)+(h(j)=b_1j)\)。

这个 \(h(j)\) 长成一条斜率为 \(b_1\) 的斜线。

然后做吃左边,\(f_1(j) \gets f_1(j) + (g(j)=\max(a_1-j,0))\)。

这个 \(g(j)\) 长成前一段是斜率为 \(-1\),截距为 \(a_1\) 的直线,后一段恒为 \(0\)。

那么 \(h(j)+g(j)\) 长成前一段是两条直线相加,斜率相加,是 \(b_1-1\),截距是 \(a_1\),后一段就是 \(h(j)\)。且两段是连接的。

考虑 \(f_2(j)\) 长什么样子。

先做若干次吃底部操作,即 \(f'=f_2(0)+(h_2(j)=b_2j)\)。

截距是 \(\sum a_1 \sim a_{2-1}\),斜率是 \(b_2\)。

已知后缀最大值数组 \(b_2 \le b_1\)。

再做一次吃左边操作。可以在我们的 \(f_1(j)\) 或者 \(f'\) 上面做。即取 \(f''=\min(f_1,f')\)。在 \(f''\) 上面加上 \(g_2(j)=\min(a_2-j,0)\)。

\(f''\) 长成一个下凸壳和一个直线取 \(\min\),截距一样,下凸壳斜率由 \(b_1-1 \sim b_1\),直线斜率 \(b_2\),相当于对斜率取 \(\min\),仍然是一个凸壳。

\(f_2(j)=f''+g_2(j)\),长成截距是 \(\sum a_1 \sim a_2\),斜率就是两个函数相加。

然后这么搞,维护出 \(f_{n+1}\),斜率为 \(0\) 的拐点就是答案了。

就是维护一个斜率递增的下凸壳。吃底下就是所有斜率对 \(b_i\) 取 \(\min\),把后面的大斜率 pop 掉换成 \(b_i\) 就行。吃左边就是截距加上 \(a_i\),\(j < a_i\) 的斜率 \(-1\),应该可以打 tag 做。

由上面的介绍可以证明我们的 \(j\) 可以只关心离散化的 \(a_i\)。

时间复杂度 \(O(n \log n)\)。

code

待订正

标签:截距,数字,min,左边,SS241009C,斜率,蛋糕,cake,sim
From: https://www.cnblogs.com/liyixin0514/p/18455189

相关文章

  • SSM网上蛋糕销售软件9h34h 积分兑换
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表系统内容:会员,蛋糕分类,蛋糕信息开题报告内容一、研究背景与意义随着互联网技术的飞速发展,电子商务已成为现代商业的重要组成部分。蛋糕作为一种深受消费者......
  • 基于uni-app的蛋糕甜品在线订购微信小程序
    项目介绍美食的追求愈发精致和多样化。蛋糕和甜品作为人们日常消费中的重要组成部分,其市场需求不断增长。传统线下甜品店在销售过程中面临诸多限制,如营业时间固定、销售区域有限、顾客需要到店购买等,这大大限制了甜品市场的扩展。为了满足广大消费者对蛋糕和甜品便捷、多样......
  • 基于Springboot+Vue的网上蛋糕销售系统(含源码数据库)
    1.开发环境开发系统:Windows10/11架构模式:MVC/前后端分离JDK版本:JavaJDK1.8开发工具:IDEA数据库版本:mysql5.7或8.0数据库可视化工具:navicat服务器:SpringBoot自带apachetomcat主要技术:Java,Springboot,mybatis,mysql,vue2.视频演示地址3.功能这个系......
  • 基于Python+Vue开发的蛋糕商城管理系统源码+开发文档
    项目简介该项目是基于Python+Vue开发的蛋糕商城管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的蛋糕商城管理系统项目,大学生可以在实践中学习和提升自己的能力......
  • jsp蛋糕甜品商城系统72lo6
    jsp蛋糕甜品商城系统72lo6本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表项目功能用户,商品分类,商品信息开题报告内容一、项目背景与意义随着电子商务的蓬勃发展,线上购物已成为人们日常生活中不可或缺的......
  • jsp蛋糕甜品店管理系统4fx6j
    jsp蛋糕甜品店管理系统4fx6j本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表项目功能用户,商品分类,商品尺寸,商品信息开题报告内容一、立题背景与意义随着互联网的普及和消费者购物习惯的改变,线上购物已......
  • jsp蛋糕商城系统6b4n8
    jsp蛋糕商城系统本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表项目功能用户,商品分类,商品信息开题报告内容一、立题依据随着互联网技术的飞速发展,电子商务已成为现代商业活动的重要组成部分。蛋糕作为一......
  • 【源码文档全套】基于微信小程序的蛋糕订购平台-uniapp安卓(开题答辩实训报告论文)
        博主介绍:......
  • 基于Java+Springboot+Vue开发的蛋糕商城管理系统
    项目简介该项目是基于Java+Springboot+Vue开发的蛋糕商城管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的蛋糕商城管理系统项目,大学生可以在实践中学习和提升自......
  • _切蛋糕_
    切蛋糕题目描述今天是小Z的生日,同学们为他带来了一块蛋糕。这块蛋糕是一个长方体,被用不同色彩分成了nnn个相同的小块,每小块都有对应的幸运值。小Z作为寿星,自然希......